2013-08-27 5 views
10

So, ich habe mehr als eine Version von Java auf dem System installiert (1.7 und 1.6). Ich brauche 1.6, also habe ich auf Ubuntu ein update-alternatives --config java und ändere es auf 1.6. Jetzt sagt Java-Version, dass ich 1,6 benutze.Java/Maven/Tomcat: Bootstrap-Klassenpfad nicht in Verbindung mit -source 1.6 gesetzt

Also, ich versuche, mit Maven zu bauen. Wenn ich ein mvn saubere Installation zu tun, habe ich am Ende mit dem folgenden Fehler auf:

[ERROR] bootstrap class path not set in conjunction with -source 1.6 
/path/to/SomeResultSetStub.java:[32,7] error: SomeResultSetStub is not abstract and does not override abstract method <T>getObject(String,Class<T>) in ResultSet 

ich für diesen Fehler einige suchen habe, und es scheint, als ob ich irgendwo eine Art von bootclasspath einstellen müssen, aber ich kann nicht scheinen sehr explizite Anweisungen dafür zu finden.

Kann mir jemand helfen, den Fehler zu beheben?

+0

Herr A, haben Sie jemals dieses Problem herausgefunden? – AndyPerlitch

Antwort

9

Wenn javac verwendet in Verbindung mit -source Sie den Bootstrap-Classpath angeben müssen, um sicherzustellen, treten keine Laufzeitfehler, wenn der kompilierte Code auf einem 1.6 JVM läuft ...

public class Main { 
    public static void main(String[] args) { 
     System.out.println("Hello World!"); 
    } 
} 

$ javac -target 1.7 -source 1.7 Main.java 
$ javac -target 1.6 -source 1.6 Main.java 
warning: [options] bootstrap class path not set in conjunction with -source 1.6 
1 warning 
$ javac -Xbootclasspath:/usr/java/jdk1.6.0_29/jre/lib/rt.jar -target 1.6 -source 1.6 Main.java 
$ javac -Xbootclasspath:/usr/java/jdk1.5.0_22/jre/lib/rt.jar -target 1.5 -source 1.5 Main.java 
$ javac -Xbootclasspath:/usr/java/jdk1.4.0_30/jre/lib/rt.jar -target 1.4 -source 1.4 Main.java 
$ javac -Xbootclasspath:/usr/java/jdk1.3.1_29/jre/lib/rt.jar -target 1.3 -source 1.3 Main.java 
$ javac -Xbootclasspath:/usr/java/jdk1.2.2_017/jre/lib/rt.jar -target 1.2 -source 1.2 Main.java 
$ javac -Xbootclasspath:/usr/java/jdk1.1.8_16/jre/lib/rt.jar -target 1.1 -source 1.2 Main.java 
$ javac -Xbootclasspath:/usr/java/jdk1.1.8_16/jre/lib/rt.jar -target 1.1 -source 1.1 Main.java 
javac: invalid source release: 1.1 
Usage: javac 
use -help for a list of possible options 
$ javac -Xbootclasspath:/usr/java/jdk1.1.8_16/jre/lib/rt.jar -target 1.0 -source 1.0 Main.java 
javac: invalid target release: 1.0 
Usage: javac 
use -help for a list of possible options 

Für weitere Informationen siehe http://vanillajava.blogspot.nl/2012/02/using-java-7-to-target-much-older-jvms.html .

+1

Herr A fragt nach dem Auftreten von 'mvn clean install', nicht direkt mit dem Befehl javac – AndyPerlitch