Java/Maven/Tomcat: путь класса bootstrap не установлен в сочетании с -source 1.6

Итак, у меня есть несколько версий Java, установленных в системе (1.7 и 1.6). Мне нужно использовать 1.6, поэтому, находясь на Ubuntu, я сделал альтернативу обновлений --config java и изменил его на 1.6. Теперь java -version говорит мне, что я использую 1.6.

Итак, я пытаюсь построить с помощью Maven. Если я делаю чистую установку mvn, я получаю следующую ошибку:

[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

Я искал эту ошибку, и мне кажется, что мне нужно каким-то образом установить какой-то BootClassPath, но я не могу найти очень явные инструкции для этого.

Может ли кто-нибудь помочь мне решить проблему?

Ответ 1

При использовании javac в сочетании с -source вам необходимо указать путь к bootstrap, чтобы убедиться, что при запуске скомпилированного кода на 1,6 jvm...

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

Подробнее см. http://vanillajava.blogspot.nl/2012/02/using-java-7-to-target-much-older-jvms.html.

Ответ 2

Ошибка пути "bootstrap class path" может появиться, если вы используете другую JDK, а затем версию 6. Как вы сказали, вы хотите использовать JDK 6, и, похоже, вы используете другую версию, вы должны сначала ее изменить. Кроме того, ваш вопрос будет дублировать: предупреждение: [options] путь к bootstrap не установлен в сочетании с -source 1.5