diff --git a/apps/addressbook/build.xml b/apps/addressbook/build.xml
index b28cec2dcc4299e5749d0419cba018cf89494fd5..6332c5bcc6d6345d0c42103bf94faf3a949725ee 100644
--- a/apps/addressbook/build.xml
+++ b/apps/addressbook/build.xml
@@ -6,6 +6,7 @@
 	<property name="dist"  location="dist"/>
 	<property name="jar" value="addressbook.jar"/>
 	<property name="war" value="addressbook.war"/>
+	<property name="javac.compilerargs" value="" />
 	
 	<target name="init">
 		<mkdir dir="${build}"/>
@@ -38,6 +39,7 @@
 	<target name="compile" depends="init, depend">
 		<javac debug="true" deprecation="on" source="1.5" target="1.5" 
                        srcdir="${src}" destdir="${build}">
+            <compilerarg line="${javac.compilerargs}" />
             <classpath>
                 <pathelement location="../../core/java/build/i2p.jar" />
                 <pathelement location="../jetty/jettylib/javax.servlet.jar" />
diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml
index 9689fda06823a17019d39cd05c3488b19a433d70..d70233ac6e9404d541addc9993c7a86d6fca7491 100644
--- a/apps/i2psnark/java/build.xml
+++ b/apps/i2psnark/java/build.xml
@@ -24,6 +24,7 @@
             </classpath>
         </depend>
     </target>
+    <property name="javac.compilerargs" value="" />
     <target name="compile" depends="depend">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
@@ -31,7 +32,9 @@
             srcdir="./src" 
             debug="true" deprecation="on" source="1.5" target="1.5" 
             destdir="./build/obj" 
-            classpath="../../../core/java/build/i2p.jar:../../jetty/jettylib/org.mortbay.jetty.jar:../../jetty/jettylib/javax.servlet.jar:../../ministreaming/java/build/mstreaming.jar" />
+            classpath="../../../core/java/build/i2p.jar:../../jetty/jettylib/org.mortbay.jetty.jar:../../jetty/jettylib/javax.servlet.jar:../../ministreaming/java/build/mstreaming.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="jar" depends="builddep, compile">
         <jar destfile="./build/i2psnark.jar" basedir="./build/obj" includes="**/*.class" excludes="**/*Servlet.class">
@@ -55,6 +58,7 @@
     <target name="standalone_prep" depends="war">
         <javac debug="true" deprecation="on" source="1.5" target="1.5" 
                destdir="./build" srcdir="src/" includes="org/klomp/snark/web/RunStandalone.java" >
+            <compilerarg line="${javac.compilerargs}" />
             <classpath>
                 <pathelement location="../../jetty/jettylib/commons-logging.jar" />
                 <pathelement location="../../jetty/jettylib/commons-el.jar" />
diff --git a/apps/i2ptunnel/java/build.xml b/apps/i2ptunnel/java/build.xml
index 564f6fc4b85b3e75aad91dcf58ec90e882e88291..5ab73d5e2f5bca78f7aca2b519f71e3b3a88e06a 100644
--- a/apps/i2ptunnel/java/build.xml
+++ b/apps/i2ptunnel/java/build.xml
@@ -22,6 +22,7 @@
             </classpath>
         </depend>
     </target>
+    <property name="javac.compilerargs" value="" />
     <target name="compile" depends="depend">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
@@ -29,7 +30,9 @@
             srcdir="./src" 
             debug="true" deprecation="on" source="1.5" target="1.5" 
             destdir="./build/obj" 
-            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" />
+            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="jar" depends="builddep, compile">
         <jar destfile="./build/i2ptunnel.jar" basedir="./build/obj" includes="**/*.class">
@@ -73,6 +76,7 @@
         </java>
         <javac debug="true" deprecation="on" source="1.5" target="1.5" 
                destdir="../jsp/WEB-INF/classes/" srcdir="../jsp/WEB-INF/classes" includes="**/*.java">
+            <compilerarg line="${javac.compilerargs}" />
             <classpath>
                 <pathelement location="../../jetty/jettylib/jasper-runtime.jar" />
                 <pathelement location="../../jetty/jettylib/javax.servlet.jar" />
diff --git a/apps/jetty/build.xml b/apps/jetty/build.xml
index 643dd79fdcb77b1c908ef84be030b3b654224e60..dab064c5ec24b3f403bd747d0a1824f4945e7f0d 100644
--- a/apps/jetty/build.xml
+++ b/apps/jetty/build.xml
@@ -6,6 +6,7 @@
     <property name="jetty.url" value="http://dist.codehaus.org/jetty/jetty-5.1.x/jetty-5.1.12.zip" />
     <property name="jetty.filename" value="jetty-5.1.12.zip" />
     <property name="verified.filename" value="verified.txt" />
+    <property name="javac.compilerargs" value="" />
 
     <target name="all" depends="build" />
 
@@ -90,9 +91,11 @@
         <mkdir dir="./build/obj" />
         <javac 
             srcdir="./java/src" 
-            debug="true" deprecation="on" source="1.5" target="1.5" 
+            debug="true" source="1.5" target="1.5" 
             destdir="./build/obj" 
-            classpath="./jettylib/commons-logging.jar:./jettylib/javax.servlet.jar:./jettylib/org.mortbay.jetty.jar" />
+            classpath="./jettylib/commons-logging.jar:./jettylib/javax.servlet.jar:./jettylib/org.mortbay.jetty.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="jar" depends="compile">
         <jar destfile="./jettylib/org.mortbay.jetty.jar" basedir="./build/obj" includes="**/*.class" update="true" >
diff --git a/apps/ministreaming/java/build.xml b/apps/ministreaming/java/build.xml
index 48920deefef64ddbe54539c94f827c8587bc7743..1f83b640ddbe78e3ff8c8395f0372a56bdf31714 100644
--- a/apps/ministreaming/java/build.xml
+++ b/apps/ministreaming/java/build.xml
@@ -19,10 +19,13 @@
             </classpath>
         </depend>
     </target>
+    <property name="javac.compilerargs" value="" />
     <target name="compile" depends="depend">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
-        <javac srcdir="./src" debug="true" deprecation="on" source="1.5" target="1.5" destdir="./build/obj" classpath="../../../core/java/build/i2p.jar" />
+        <javac srcdir="./src" debug="true" deprecation="on" source="1.5" target="1.5" destdir="./build/obj" classpath="../../../core/java/build/i2p.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="jar" depends="compile">
         <jar destfile="./build/mstreaming.jar" basedir="./build/obj" includes="**/*.class" />
diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml
index 00168963bf50b1415bba70ef900cc176fee8889c..23e1ac05bdb955ea41cf575c8e66037877b1685b 100644
--- a/apps/routerconsole/java/build.xml
+++ b/apps/routerconsole/java/build.xml
@@ -40,6 +40,7 @@
              <targetfilelist dir="." files="build/obj/net/i2p/router/web/UpdateHandler.class" />
         </dependset>
     </target>
+    <property name="javac.compilerargs" value="" />
     <target name="compile" depends="prepare, depend, dependVersion">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
@@ -47,6 +48,7 @@
             srcdir="./src" 
             debug="true" deprecation="on" source="1.5" target="1.5" 
             destdir="./build/obj">
+            <compilerarg line="${javac.compilerargs}" />
             <classpath>
                 <pathelement location="../../../core/java/build/i2p.jar" />
                 <pathelement location="../../../router/java/build/router.jar" />
@@ -114,6 +116,7 @@
         <javac debug="true" deprecation="on" source="1.5" target="1.5" 
                destdir="../jsp/WEB-INF/classes/" 
                srcdir="../jsp/WEB-INF/classes" includes="**/*.java">
+            <compilerarg line="${javac.compilerargs}" />
             <classpath>
                 <pathelement location="../../jetty/jettylib/jasper-runtime.jar" />
                 <pathelement location="../../jetty/jettylib/javax.servlet.jar" />
diff --git a/apps/sam/java/build.xml b/apps/sam/java/build.xml
index bb692f2db3c3d0c8ef0b5cd8d7bad0fe95ac8b89..78f9cdfb0a26af4c91cb8a504b8f1b50d5b0e1f8 100644
--- a/apps/sam/java/build.xml
+++ b/apps/sam/java/build.xml
@@ -21,6 +21,7 @@
             </classpath>
         </depend>
     </target>
+    <property name="javac.compilerargs" value="" />
     <target name="compile" depends="depend">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
@@ -28,14 +29,18 @@
             srcdir="./src" 
             debug="true" deprecation="on" source="1.5" target="1.5" 
             destdir="./build/obj" 
-            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" />
+            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="compileTest" depends="compile">
         <javac 
             srcdir="./test" 
             debug="true" deprecation="on" source="1.5" target="1.5" 
             destdir="./build/obj" 
-            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" />
+            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="jar" depends="compile">
         <jar destfile="./build/sam.jar" basedir="./build/obj" includes="**/*.class">
diff --git a/apps/streaming/java/build.xml b/apps/streaming/java/build.xml
index a32ca077c336db1dc1175ef5901b8adebc7fad9b..7740a60226169b9facff377f6d00c040373004c2 100644
--- a/apps/streaming/java/build.xml
+++ b/apps/streaming/java/build.xml
@@ -21,6 +21,7 @@
             </classpath>
         </depend>
     </target>
+    <property name="javac.compilerargs" value="" />
     <target name="compile" depends="depend">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
@@ -28,14 +29,18 @@
             srcdir="./src" 
             debug="true" deprecation="on" source="1.5" target="1.5" 
             destdir="./build/obj" 
-            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" />
+            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="compileTest" depends="compile">
         <javac 
             srcdir="./test" 
             debug="true" deprecation="on" source="1.5" target="1.5" 
             destdir="./build/obj" 
-            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" />
+            classpath="../../../core/java/build/i2p.jar:../../ministreaming/java/build/mstreaming.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="jar" depends="builddep, compile">
         <jar destfile="./build/streaming.jar" basedir="./build/obj" includes="**/*.class" />
diff --git a/apps/susidns/src/build.xml b/apps/susidns/src/build.xml
index d3f5f1662c72284c6677379b447a60970f436753..be34b4879e3fa706f1325a0e2d4d670b89b109bf 100644
--- a/apps/susidns/src/build.xml
+++ b/apps/susidns/src/build.xml
@@ -22,10 +22,13 @@
         <pathelement location="${lib}/ant.jar" />
         <pathelement location="../../../core/java/build/i2p.jar" />
  	</path>
+	<property name="javac.compilerargs" value="" />
  	<target name="compile">
 		<mkdir dir="${bin}" />
 		<javac debug="true" deprecation="on" source="1.5" target="1.5"
- 			classpathref="cp" destdir="${bin}" srcdir="${src}" includes="**/*.java" />
+ 			classpathref="cp" destdir="${bin}" srcdir="${src}" includes="**/*.java" >
+			<compilerarg line="${javac.compilerargs}" />
+		</javac>
 	</target>
     <target name="precompilejsp" unless="precompilejsp.uptodate">
         <delete file="WEB-INF/web-fragment.xml" />
@@ -45,6 +48,7 @@
         </java>
         <javac debug="true" deprecation="on" source="1.5" target="1.5" 
                destdir="${bin}" srcdir="./WEB-INF/classes" includes="**/*.java" classpathref="cp">
+		<compilerarg line="${javac.compilerargs}" />
          </javac>
         <copy file="WEB-INF/web-template.xml" tofile="WEB-INF/web-out.xml" />
         <loadfile property="jspc.web.fragment" srcfile="WEB-INF/web-fragment.xml" />
diff --git a/apps/susimail/build.xml b/apps/susimail/build.xml
index abf2a88cf71c2829a9ca9beeada5ad658f02e7f7..886f9471f6425982bb3f71a2747118fa02c0ac31 100644
--- a/apps/susimail/build.xml
+++ b/apps/susimail/build.xml
@@ -5,11 +5,13 @@
     <target name="builddep">
         <ant dir="../jetty/" target="build" />
     </target>
+    <property name="javac.compilerargs" value="" />
     <target name="compile">
         <javac 
             srcdir="./src/src"
             debug="true" deprecation="off" source="1.5" target="1.5" 
             destdir="./src/WEB-INF/classes">
+            <compilerarg line="${javac.compilerargs}" />
             <classpath>
                 <pathelement location="../jetty/jettylib/javax.servlet.jar" />
                 <pathelement location="../jetty/jettylib/org.mortbay.jetty.jar" />
diff --git a/apps/systray/java/build.xml b/apps/systray/java/build.xml
index 19db56d5ca76c2b7424ec3ef21a232dae0545005..1597f20b359a24ec9d940c847cd2057b1fef1df3 100644
--- a/apps/systray/java/build.xml
+++ b/apps/systray/java/build.xml
@@ -5,6 +5,7 @@
     <target name="builddep">
         <ant dir="../../../core/java/" target="build" />
     </target>
+    <property name="javac.compilerargs" value="" />
     <target name="compile">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
@@ -16,7 +17,9 @@
             target="1.5"
             destdir="./build/obj"
             includes="**/*.java"
-            classpath="./lib/systray4j.jar:../../../core/java/build/i2p.jar" />
+            classpath="./lib/systray4j.jar:../../../core/java/build/i2p.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="jar" depends="compile" unless="jar.uptodate">
         <mkdir dir="./build/jar_temp" />
diff --git a/build.xml b/build.xml
index 3a30ff8e7f8d5684907200a377179c624d863152..d2c4001be704ad7ede6f43453b898fd450792974 100644
--- a/build.xml
+++ b/build.xml
@@ -1,6 +1,13 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <project basedir="." default="all" name="i2p">
    
+    <!-- Things you might want to change -->
+    <!-- This keeps gcj a lot quieter -->
+    <!--
+        <property name="javac.compilerargs" value="-warn:-unchecked,raw,unused,serial" />
+    -->
+
+    <!-- You probably don't want to change anything from here down -->
     <target name="all" >
         <echo message="Useful targets: " />
         <echo message="  pkg:       distclean then package everything up (installer, clean tarball, update tarball)" />
diff --git a/core/java/build.xml b/core/java/build.xml
index 28adbf9df288733c0aabd7aae49c4a432cea664d..a52dcb63542d68e54a4159a24022a53761bc9854 100644
--- a/core/java/build.xml
+++ b/core/java/build.xml
@@ -15,15 +15,21 @@
             destdir="./build/obj" >
         </depend>
     </target>
+    <!-- only used if not set by a higher build.xml -->
+    <property name="javac.compilerargs" value="" />
     <target name="compile" depends="depend">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
-        <javac srcdir="./src" debug="true" source="1.5" target="1.5" deprecation="on" destdir="./build/obj" />
+        <javac srcdir="./src" debug="true" source="1.5" target="1.5" deprecation="on" destdir="./build/obj" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="compileTest">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
-        <javac srcdir="./src:./test" debug="true" source="1.5" target="1.5" deprecation="on" destdir="./build/obj" />
+        <javac srcdir="./src:./test" debug="true" source="1.5" target="1.5" deprecation="on" destdir="./build/obj" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="jar" depends="compile">
         <jar destfile="./build/i2p.jar" basedir="./build/obj" includes="**/*.class" />
diff --git a/installer/lib/launch4j/build.xml b/installer/lib/launch4j/build.xml
index 42c77a225f04a9365f2eaba3d5e71851083f5bc0..767e7c59271a9dfac33f24e3aef5fe6620ea52b2 100644
--- a/installer/lib/launch4j/build.xml
+++ b/installer/lib/launch4j/build.xml
@@ -7,6 +7,7 @@
 	<property name="dist" location="${user.home}/dist/${ant.project.name}" />
 	<property name="jar" location="./${ant.project.name}.jar" />
 	<property name="launch4j.dir" location="." />
+	<property name="javac.compilerargs" value="" />
 
 	<path id="dist.classpath">
 		<pathelement path="${build}" />
@@ -23,6 +24,8 @@
 
 	<target name="compile" depends="init" description="compile the source">
 		<javac srcdir="${src}" destdir="${build}" classpathref="dist.classpath" source="1.4" debug="on" />
+			<compilerarg line="${javac.compilerargs}" />
+		</javac>
 		<copy todir="${build}/images">
 			<fileset dir="${src}/images">
 				<include name="**/*" />
diff --git a/router/java/build.xml b/router/java/build.xml
index 95878e468fa88434d47c13d64903a8042ede1020..70f83fbd7027df90779b65bacb65554d1467cc9f 100644
--- a/router/java/build.xml
+++ b/router/java/build.xml
@@ -22,15 +22,21 @@
             </classpath>
         </depend>
     </target>
+    <!-- only used if not set by a higher build.xml -->
+    <property name="javac.compilerargs" value="" />
     <target name="compile" depends="depend">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
-        <javac srcdir="./src" debug="true" source="1.5" target="1.5" deprecation="on" destdir="./build/obj" classpath="../../core/java/build/i2p.jar" />
+        <javac srcdir="./src" debug="true" source="1.5" target="1.5" deprecation="on" destdir="./build/obj" classpath="../../core/java/build/i2p.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="compileTest" depends="builddeptest">
         <mkdir dir="./build" />
         <mkdir dir="./build/obj" />
-        <javac srcdir="./src:./test" debug="true" source="1.5" target="1.5" deprecation="on" destdir="./build/obj" classpath="../../core/java/build/i2ptest.jar" />
+        <javac srcdir="./src:./test" debug="true" source="1.5" target="1.5" deprecation="on" destdir="./build/obj" classpath="../../core/java/build/i2ptest.jar" >
+            <compilerarg line="${javac.compilerargs}" />
+        </javac>
     </target>
     <target name="jar" depends="compile">
         <jar destfile="./build/router.jar" basedir="./build/obj" includes="**/*.class" />