diff --git a/apps/addressbook/build.xml b/apps/addressbook/build.xml
index 719924bcd861ff4affe2fefda34354d5a304ce6d..5a9af2e9073d80e03cd6ca4cc3abe42ece2375fe 100644
--- a/apps/addressbook/build.xml
+++ b/apps/addressbook/build.xml
@@ -7,6 +7,7 @@
 	<property name="jar" value="addressbook.jar"/>
 	<property name="war" value="addressbook.war"/>
 	<property name="javac.compilerargs" value="" />
+	<property name="javac.version" value="1.6" />
 	
 	<target name="init">
 		<mkdir dir="${build}"/>
@@ -37,7 +38,7 @@
         </target>
 
 	<target name="compile" depends="init, depend">
-		<javac debug="true" deprecation="on" source="1.6" target="1.6" 
+            <javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
                        includeAntRuntime="false"
                        srcdir="${src}" destdir="${build}">
             <compilerarg line="${javac.compilerargs}" />
diff --git a/apps/desktopgui/build.xml b/apps/desktopgui/build.xml
index 59f2b8ed2d7f83490ea503de5a113a32c6e0c0a8..598027900b872460b795fc3a1e1b94469bde6c17 100644
--- a/apps/desktopgui/build.xml
+++ b/apps/desktopgui/build.xml
@@ -7,12 +7,13 @@
 	<property name="jar" value="desktopgui.jar"/>
 	<property name="resources" value="resources"/>
     <property name="javadoc" value="javadoc"/>
+	<property name="javac.compilerargs" value=""/>
+	<property name="javac.version" value="1.6" />
+	<property name="require.gettext" value="true" />
 
     <condition property="no.bundle">
         <isfalse value="${require.gettext}" />
     </condition>
-	<property name="javac.compilerargs" value=""/>
-	<property name="require.gettext" value="true" />
 
 	<target name="init">
 	<mkdir dir="${build}"/>
@@ -27,7 +28,7 @@
 	</target>
 
 	<target name="compile" depends="init">
-		<javac debug="true" deprecation="on" source="1.6" target="1.6" 
+            <javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
                        includeAntRuntime="false"
                        srcdir="${src}" destdir="${build}">
             <compilerarg line="${javac.compilerargs}" />
diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml
index 225c9f377e3529ee306d6415113f2624f568e0fb..c02d89d7e979520d5163a7f4956f1d1969dec4a3 100644
--- a/apps/i2psnark/java/build.xml
+++ b/apps/i2psnark/java/build.xml
@@ -25,18 +25,20 @@
         </depend>
     </target>
 
+    <property name="javac.compilerargs" value="" />
+    <property name="javac.version" value="1.6" />
+    <property name="require.gettext" value="true" />
+
     <condition property="no.bundle">
         <isfalse value="${require.gettext}" />
     </condition>
-    <property name="javac.compilerargs" value="" />
-    <property name="require.gettext" value="true" />
 
     <target name="compile" depends="depend">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
         <javac 
             srcdir="./src" 
-            debug="true" deprecation="on" source="1.6" target="1.6" 
+            debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
             destdir="./build/obj" 
             includeAntRuntime="false"
             classpath="../../../core/java/build/i2p.jar:../../jetty/jettylib/org.mortbay.jetty.jar:../../jetty/jettylib/javax.servlet.jar:../../jetty/jettylib/jetty-servlet.jar:../../jetty/jettylib/jetty-util.jar:../../ministreaming/java/build/mstreaming.jar" >
diff --git a/apps/i2ptunnel/java/build.xml b/apps/i2ptunnel/java/build.xml
index e095af29d7e3c757b054748a2753d156c6316e1a..25a5f79c744618006cb054f4331d053162de08f8 100644
--- a/apps/i2ptunnel/java/build.xml
+++ b/apps/i2ptunnel/java/build.xml
@@ -24,7 +24,9 @@
     <condition property="no.bundle">
         <isfalse value="${require.gettext}" />
     </condition>
+
     <property name="javac.compilerargs" value="" />
+    <property name="javac.version" value="1.6" />
     <property name="require.gettext" value="true" />
 
     <target name="compile" depends="depend">
@@ -238,7 +240,7 @@
             <arg value="-webapp" />
             <arg value="../jsp/" />
         </java>
-        <javac debug="true" deprecation="on" source="1.6" target="1.6" 
+        <javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
                includeAntRuntime="false"
                destdir="../jsp/WEB-INF/classes/" srcdir="../jsp/WEB-INF/classes" includes="**/*.java">
             <compilerarg line="${javac.compilerargs}" />
diff --git a/apps/jetty/build.xml b/apps/jetty/build.xml
index 5e907282577b2b52ec04aa0546bb2cc5573c7d30..78790938d7008495f9bb5053fb69222066f77468 100644
--- a/apps/jetty/build.xml
+++ b/apps/jetty/build.xml
@@ -8,6 +8,7 @@
     <property name="jetty.url" value="http://download.eclipse.org/jetty/${jetty.ver}/dist/${jetty.filename}" />
     <property name="verified.filename" value="verified.txt" />
     <property name="javac.compilerargs" value="" />
+    <property name="javac.version" value="1.6" />
     <property name="tomcat.lib" value="apache-tomcat-deployer/lib" />
 
     <target name="all" depends="build" />
@@ -227,7 +228,7 @@
         <mkdir dir="./build/obj" />
         <javac 
             srcdir="./java/src" 
-            debug="true" deprecation="on" source="1.6" target="1.6" 
+            debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
             destdir="./build/obj" 
             includeAntRuntime="false"
             classpath="../../core/java/build/i2p.jar:./jettylib/commons-logging.jar:./jettylib/javax.servlet.jar:./jettylib/org.mortbay.jetty.jar:./jettylib/jetty-http.jar:./jettylib/jetty-io.jar:./jettylib/jetty-security.jar:./jettylib/jetty-util.jar:./jettylib/jetty-xml.jar" >
diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml
index fd8fe3c292a02d6cf1d72a9e80355d836a6b995b..8d9e9ec9953db88462b17340b5b10b4f5220d4a9 100644
--- a/apps/routerconsole/java/build.xml
+++ b/apps/routerconsole/java/build.xml
@@ -46,13 +46,16 @@
              <targetfilelist dir="." files="build/obj/net/i2p/router/web/UpdateHandler.class" />
         </dependset>
     </target>
+
     <property name="javac.compilerargs" value="" />
+    <property name="javac.version" value="1.6" />
+
     <target name="compile" depends="prepare, depend, dependVersion">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
         <javac 
             srcdir="./src" 
-            debug="true" deprecation="on" source="1.6" target="1.6" 
+            debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
             includeAntRuntime="false"
             destdir="./build/obj">
             <compilerarg line="${javac.compilerargs}" />
@@ -342,7 +345,7 @@
             <arg value="../jsp/" />
         </java>
         
-        <javac debug="true" deprecation="on" source="1.6" target="1.6" 
+        <javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
                encoding="UTF-8"
                includeAntRuntime="false"
                destdir="../jsp/WEB-INF/classes/" 
diff --git a/apps/sam/java/build.xml b/apps/sam/java/build.xml
index ee12a5704a23c95a5be0633691ff85e639eb7496..ff993646c096522cfc95e02a0a7580dadf084af1 100644
--- a/apps/sam/java/build.xml
+++ b/apps/sam/java/build.xml
@@ -23,6 +23,7 @@
     </target>
 
     <property name="javac.compilerargs" value="" />
+    <property name="javac.version" value="1.6" />
 
     <!-- compile everything including client classes -->
     <target name="compile" depends="depend">
@@ -30,7 +31,7 @@
         <mkdir dir="./build/obj" />
         <javac 
             srcdir="./src" 
-            debug="true" deprecation="on" source="1.6" target="1.6" 
+            debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
             includeAntRuntime="false"
             destdir="./build/obj" 
             classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar:../../streaming/java/build/streaming.jar" >
@@ -41,7 +42,7 @@
     <target name="compileTest" depends="compile">
         <javac 
             srcdir="./test" 
-            debug="true" deprecation="on" source="1.6" target="1.6" 
+            debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
             includeAntRuntime="false"
             destdir="./build/obj" 
             classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar:../../streaming/java/build/streaming.jar" >
diff --git a/apps/susidns/src/build.xml b/apps/susidns/src/build.xml
index b7afaa5d73011a3ab592b14fb75c7dabdcc3ebbb..0a68d15953a1981c9249b43bb1e483bc01775e21 100644
--- a/apps/susidns/src/build.xml
+++ b/apps/susidns/src/build.xml
@@ -21,15 +21,18 @@
         <pathelement location="${ant.home}/lib/ant.jar" />
         <pathelement location="../../../core/java/build/i2p.jar" />
  	</path>
+
 	<property name="javac.compilerargs" value="" />
+	<property name="javac.version" value="1.6" />
+	<property name="require.gettext" value="true" />
+
     <condition property="no.bundle">
         <isfalse value="${require.gettext}" />
     </condition>
-	<property name="require.gettext" value="true" />
 
  	<target name="compile">
 		<mkdir dir="${bin}" />
-		<javac debug="true" deprecation="on" source="1.6" target="1.6"
+		<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
 			includeAntRuntime="false"
  			classpathref="cp" destdir="${bin}" srcdir="${src}" includes="**/*.java" >
 			<compilerarg line="${javac.compilerargs}" />
@@ -52,7 +55,7 @@
             <arg value="-webapp" />
             <arg value="./jsp" />
         </java>
-        <javac debug="true" deprecation="on" source="1.6" target="1.6" 
+        <javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
                includeAntRuntime="false"
                destdir="${bin}" srcdir="${tmp}" includes="**/*.java" classpathref="cp">
 		<compilerarg line="${javac.compilerargs}" />
diff --git a/apps/susimail/build.xml b/apps/susimail/build.xml
index e99e645679236bb63c80931d2431994017d35f32..bc38cd02a12b480b1c8cbec2a23c0e066fdcd5de 100644
--- a/apps/susimail/build.xml
+++ b/apps/susimail/build.xml
@@ -7,17 +7,18 @@
     </target>
 
     <property name="javac.compilerargs" value="" />
+    <property name="javac.version" value="1.6" />
+    <property name="require.gettext" value="true" />
+
     <condition property="no.bundle">
         <isfalse value="${require.gettext}" />
     </condition>
 
-    <property name="require.gettext" value="true" />
-
     <target name="compile">
         <mkdir dir="./src/WEB-INF/classes" />
         <javac 
             srcdir="./src/src"
-            debug="true" deprecation="off" source="1.6" target="1.6" 
+            debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
             includeAntRuntime="false"
             destdir="./src/WEB-INF/classes">
             <compilerarg line="${javac.compilerargs}" />
diff --git a/apps/systray/java/build.xml b/apps/systray/java/build.xml
index eb5e01a0367479bcbfaabdbb25cff370b8596158..9fccf66fcded6899cdc05bc371001017edeface6 100644
--- a/apps/systray/java/build.xml
+++ b/apps/systray/java/build.xml
@@ -5,7 +5,10 @@
     <target name="builddep">
         <!-- run from top level build.xml to get dependencies built -->
     </target>
+
     <property name="javac.compilerargs" value="" />
+    <property name="javac.version" value="1.6" />
+
     <target name="compile">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
@@ -13,8 +16,8 @@
             srcdir="./src"
             debug="true"
             deprecation="on"
-            source="1.6"
-            target="1.6"
+            source="${javac.version}"
+            target="${javac.version}"
             destdir="./build/obj"
             includeAntRuntime="false"
             includes="**/*.java"
diff --git a/build.properties b/build.properties
index de1db951837d61725c30dbd45c10522e9979519d..d31351d0b824cb0f384338606aba67f950f38448 100644
--- a/build.properties
+++ b/build.properties
@@ -36,6 +36,9 @@ sloccount.report.file=sloccount.sc
 # Change this to false if you don't have gettext or you want to prevent it from running during the build
 require.gettext=true
 
+# Compile for this version of Java
+javac.version=1.6
+
 # Additional classpath if required
 #javac.classpath=/PATH/TO/pack200.jar