diff --git a/apps/BOB/nbproject/project.properties b/apps/BOB/nbproject/project.properties
index cb27f85ab..2badec848 100644
--- a/apps/BOB/nbproject/project.properties
+++ b/apps/BOB/nbproject/project.properties
@@ -48,8 +48,9 @@ javac.classpath=\
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
-javac.source=1.5
-javac.target=1.5
+javac.version=1.7
+javac.source=${javac.version}
+javac.target=${javac.version}
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}:\
diff --git a/apps/addressbook/build.xml b/apps/addressbook/build.xml
index 5af5a32a8..e4e913cb2 100644
--- a/apps/addressbook/build.xml
+++ b/apps/addressbook/build.xml
@@ -7,7 +7,7 @@
-
+
diff --git a/apps/desktopgui/build.xml b/apps/desktopgui/build.xml
index 1a1c9105e..b31cc86df 100644
--- a/apps/desktopgui/build.xml
+++ b/apps/desktopgui/build.xml
@@ -7,7 +7,7 @@
-
+
diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml
index 486d66a80..8815d6753 100644
--- a/apps/i2psnark/java/build.xml
+++ b/apps/i2psnark/java/build.xml
@@ -26,7 +26,7 @@
-
+
diff --git a/apps/i2ptunnel/java/build.xml b/apps/i2ptunnel/java/build.xml
index 346e91920..6c4698a27 100644
--- a/apps/i2ptunnel/java/build.xml
+++ b/apps/i2ptunnel/java/build.xml
@@ -28,7 +28,7 @@
-
+
diff --git a/apps/imagegen/identicon/build.xml b/apps/imagegen/identicon/build.xml
index 64f97ee9c..e0e85bd53 100644
--- a/apps/imagegen/identicon/build.xml
+++ b/apps/imagegen/identicon/build.xml
@@ -18,7 +18,7 @@
-
+
diff --git a/apps/imagegen/imagegen/build.xml b/apps/imagegen/imagegen/build.xml
index d16eab6d7..7cc657c05 100644
--- a/apps/imagegen/imagegen/build.xml
+++ b/apps/imagegen/imagegen/build.xml
@@ -28,7 +28,7 @@
-
+
diff --git a/apps/imagegen/zxing/build.xml b/apps/imagegen/zxing/build.xml
index 4ddb3bcf3..c878015b1 100644
--- a/apps/imagegen/zxing/build.xml
+++ b/apps/imagegen/zxing/build.xml
@@ -22,12 +22,12 @@
-
-
diff --git a/apps/jetty/build.xml b/apps/jetty/build.xml
index 0f213c39a..17900f1c4 100644
--- a/apps/jetty/build.xml
+++ b/apps/jetty/build.xml
@@ -20,7 +20,7 @@
-
+
diff --git a/apps/ministreaming/java/build.xml b/apps/ministreaming/java/build.xml
index 825ae2fc0..8232492b1 100644
--- a/apps/ministreaming/java/build.xml
+++ b/apps/ministreaming/java/build.xml
@@ -22,7 +22,7 @@
-
+
diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml
index 259a0f360..6248346ac 100644
--- a/apps/routerconsole/java/build.xml
+++ b/apps/routerconsole/java/build.xml
@@ -47,7 +47,7 @@
-
+
diff --git a/apps/sam/java/build.xml b/apps/sam/java/build.xml
index 04e8d6932..9aab0527c 100644
--- a/apps/sam/java/build.xml
+++ b/apps/sam/java/build.xml
@@ -22,10 +22,8 @@
-
-
-
+
@@ -33,7 +31,7 @@
diff --git a/apps/streaming/java/build.xml b/apps/streaming/java/build.xml
index 67d943e41..0c2b80d71 100644
--- a/apps/streaming/java/build.xml
+++ b/apps/streaming/java/build.xml
@@ -23,7 +23,7 @@
-
+
diff --git a/apps/susidns/src/build.xml b/apps/susidns/src/build.xml
index 77d63bc22..eefdacd59 100644
--- a/apps/susidns/src/build.xml
+++ b/apps/susidns/src/build.xml
@@ -33,7 +33,7 @@
-
+
diff --git a/apps/susimail/build.xml b/apps/susimail/build.xml
index ca0a32e22..b3ede69b3 100644
--- a/apps/susimail/build.xml
+++ b/apps/susimail/build.xml
@@ -7,7 +7,7 @@
-
+
diff --git a/apps/systray/java/build.xml b/apps/systray/java/build.xml
index f647ec30e..448c5ca8f 100644
--- a/apps/systray/java/build.xml
+++ b/apps/systray/java/build.xml
@@ -21,7 +21,7 @@
-
+
diff --git a/build.properties b/build.properties
index bfbde63d4..8bde13e19 100644
--- a/build.properties
+++ b/build.properties
@@ -40,23 +40,20 @@ sloccount.report.file=sloccount.sc
require.gettext=true
# Compile for this version of Java
-javac.version=1.6
+javac.version=1.7
# Additional classpath if required
#javac.classpath=/PATH/TO/pack200.jar
# Optional compiler args
-# This one is for subsystems requiring Java 6
# This one keeps gcj a lot quieter
#javac.compilerargs=-warn:-unchecked,raw,unused,serial
-# This one is for subsystems requiring Java 7
-#javac.compilerargs7=
#
# Note to packagers, embedders, distributors:
#
# Strictly speaking, you must either use the compiler for the minimum Java version you are
-# targeting (default 1.6, see above), or specify a bootclasspath, which means you need
+# targeting (default 1.7, see above), or specify a bootclasspath, which means you need
# the JRE for the target version installed as well.
#
# However, in practice, you can compile with 1.7 and target 1.6 without specifying a bootclasspath,
@@ -70,7 +67,20 @@ javac.version=1.6
# http://zzz.i2p/topics/1668
# https://gist.github.com/AlainODea/1375759b8720a3f9f094
#
+# You must set both.
+#
+# For embedded use only, and for a limited time,
+# the following subsystems ONLY may be built with Java 6 by setting javac.version=1.6 in override.properties,
+# and setting javac.compilerargs to use java 6 jars:
+# core, router, ministreaming, streaming, addressbook, i2ptunnel, BOB
+# Use the buildX ant targets to build these (see build.xml).
+# We may start using Java 7 features in these subsystems at any time and without notice.
#javac.compilerargs=-bootclasspath /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/jce.jar
+#
+# For standard builds, set both of the following in override.properties:
+#
+#javac.compilerargs=-bootclasspath /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar
+#javac.compilerargs7=-bootclasspath /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar
### UnitTests ##
diff --git a/core/java/build.xml b/core/java/build.xml
index 671c94b3c..3143f550c 100644
--- a/core/java/build.xml
+++ b/core/java/build.xml
@@ -19,7 +19,7 @@
-
+
diff --git a/installer/java/build.xml b/installer/java/build.xml
index 89a4ff6cc..f0caf6b86 100644
--- a/installer/java/build.xml
+++ b/installer/java/build.xml
@@ -19,7 +19,7 @@
-
+
diff --git a/installer/tools/java/build.xml b/installer/tools/java/build.xml
index 4c6f849a2..c7dff1b4e 100644
--- a/installer/tools/java/build.xml
+++ b/installer/tools/java/build.xml
@@ -19,7 +19,7 @@
-
+
diff --git a/router/java/build.xml b/router/java/build.xml
index 52afc658c..79c3d5d53 100644
--- a/router/java/build.xml
+++ b/router/java/build.xml
@@ -33,7 +33,7 @@
-
+