путь к классу начальной загрузки не установлен в сочетании с -source 1.6

Я обновляю свое приложение с java 1.6 до 1.7. Когда я пытаюсь собрать с помощью Maven 3.2.1, моя сборка завершается с ошибкой ниже:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project my-app5: Compilation failure: Compilation failure:
[ERROR] could not parse error message: warning: [options] bootstrap class path not set in conjunction with -source 1.6  

Я использую точку доступа java 1.7, а ранее использовал jrockit 1.6. Мое приложение является многомодульным, и несколько модулей компилируются и строятся как обычно, этот модуль не работает.

Я правильно установил java home, и mvn --version показывает вывод ниже:

Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T23:07:52+05:30)
Maven home: C:\Users\me\Maven3\apache-maven-3.2.1-bin\apache-maven-3.2.1\bin\..
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: C:\Program Files\jdk17051\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"  

Я что-то упустил?


person EmeraldTablet    schedule 08.05.2014    source источник
comment
Попытка результата отсюда: ошибка компиляции Maven   -  person EmeraldTablet    schedule 08.05.2014
comment
Добавлен ‹source›1.7‹/source› ‹target›1.7‹/target› в конфигурацию моего плагина компилятора. Не помогло ... все еще получаю то же сообщение об ошибке, и сборка не удалась   -  person EmeraldTablet    schedule 08.05.2014
comment
возможный дубликат предупреждения   -  person Danilo Piazzalunga    schedule 29.12.2014


Ответы (2)


Я решил это, используя приведенную ниже конфигурацию в моем плагине компилятора:

<fork>true</fork>
<executable>${JAVA_HOME}/bin/javac</executable>
<compilerVersion>1.7</compilerVersion>
<source>1.7</source>
<target>1.7</target>  

Это будет использовать JDK, который вы определили в своем свойстве среды JAVA_HOME.

person EmeraldTablet    schedule 09.05.2014

Цитата из этого сообщения:

Раньше в Java 5.0 и 6 была плохая поддержка компиляции классов для более старых версий Java. Он всегда поддерживал предыдущую версию, но часто не больше. Даже если бы вы могли скомпилировать предыдущую версию, вы должны были быть осторожны, чтобы не использовать функциональность, которая существовала в предыдущих версиях.

Вы должны либо включить -Xbootclasspath при использовании javac:

javac -Xbootclasspath:/path/to/jdk6/rt.jar -target 1.6 -source 1.6 Main.java

или скомпилировать с использованием -target 1.7 (или выше, конечно):

javac -target 1.7 -source 1.7 Main.java

или используйте javac из jdk 6:

/path/to/jdk6/bin/javac Main.java
person R. Oosterholt    schedule 09.12.2014