I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit 370d2555 authored by zzz's avatar zzz
Browse files

Notes and logging re: compiling with Java 8

parent 5332cee3
No related branches found
No related tags found
No related merge requests found
...@@ -46,6 +46,27 @@ javac.version=1.6 ...@@ -46,6 +46,27 @@ javac.version=1.6
# This one keeps gcj a lot quieter # This one keeps gcj a lot quieter
#javac.compilerargs=-warn:-unchecked,raw,unused,serial #javac.compilerargs=-warn:-unchecked,raw,unused,serial
#
# 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
# 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,
# and it all works fine.
#
# But you cannot compile with 1.8 and target 1.6 or 1.7 without bootclasspath,
# or your users will get runtime errors.
# Below is an example of a bootclasspath that works on Ubuntu.
#
# For more info:
# http://zzz.i2p/topics/1668
# https://gist.github.com/AlainODea/1375759b8720a3f9f094
#
#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
### UnitTests ## ### UnitTests ##
# Location of the libraries required for the ScalaTest tests. # Location of the libraries required for the ScalaTest tests.
# Define this in override.properties or pass in on the command line. # Define this in override.properties or pass in on the command line.
......
...@@ -285,6 +285,26 @@ class BuildExecutor implements Runnable { ...@@ -285,6 +285,26 @@ class BuildExecutor implements Runnable {
public void run() { public void run() {
_isRunning = true; _isRunning = true;
try {
run2();
} catch (NoSuchMethodError nsme) {
// http://zzz.i2p/topics/1668
// https://gist.github.com/AlainODea/1375759b8720a3f9f094
// at ObjectCounter.objects()
String s = "Fatal error:" +
"\nJava 8 compiler used with JRE version " + System.getProperty("java.version") +
" and no bootclasspath specified." +
"\nUpdate to Java 8 or contact packager." +
"\nStop I2P now, it will not build tunnels.";
_log.log(Log.CRIT, s, nsme);
System.out.println(s);
throw nsme;
} finally {
_isRunning = false;
}
}
private void run2() {
List<TunnelPool> wanted = new ArrayList<TunnelPool>(MAX_CONCURRENT_BUILDS); List<TunnelPool> wanted = new ArrayList<TunnelPool>(MAX_CONCURRENT_BUILDS);
List<TunnelPool> pools = new ArrayList<TunnelPool>(8); List<TunnelPool> pools = new ArrayList<TunnelPool>(8);
...@@ -423,7 +443,6 @@ class BuildExecutor implements Runnable { ...@@ -423,7 +443,6 @@ class BuildExecutor implements Runnable {
if (_log.shouldLog(Log.WARN)) if (_log.shouldLog(Log.WARN))
_log.warn("Done building"); _log.warn("Done building");
_isRunning = false;
} }
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment