Я получаю предупреждающее сообщение во время сборки!
предупреждение: [параметры] путь к классу начальной загрузки не установлен вместе с -source 1.5
Как я могу это исправить?
Я получаю предупреждающее сообщение во время сборки!
предупреждение: [параметры] путь к классу начальной загрузки не установлен вместе с -source 1.5
Как я могу это исправить?
<version>[1.7.0,1.7.0-79]</version>который, по крайней мере, прерывает сборку четким сообщением, а не тест с непонятным сообщением.
Ответы:
Чтобы использовать javac из JDK N для кросс-компиляции в более старую версию платформы, правильная практика:
- Используйте старую настройку -source.
- Установите путь к загрузочному классу для компиляции с файлом rt.jar (или аналогичным) для более старой платформы.
Если второй шаг не будет выполнен, javac будет послушно использовать старые языковые правила в сочетании с новыми библиотеками, что может привести к тому, что файлы классов не будут работать на старой платформе, поскольку могут быть включены ссылки на несуществующие методы.
использование bootclasspath
javac -bootclasspath /usr/lib/jvm/java-7-oracle/jre/lib/rt.jar \
-source 1.7 Main.java
В системах UNIX найдите, rt.jarиспользуя:
locate -r '/rt.jar$'
Установите JAVA_HOMEтак, чтобы rt.jarон находился в $JAVA_HOME/jre/lib/rt.jar, затем:
javac -source 1.7 -bootclasspath "$JAVA_HOME/jre/lib/rt.jar" Main.java
Протестировано на Ubuntu 14.04 для Oracle Java 7 и 8.
В настоящее время я использую IDE Netbeans 8.0.2 с JDK 1.8 на Linux Mint 17.1 с java -version = 1.7.0_65. Итак, чтобы иметь возможность запускать файлы JAR, мне пришлось установить myProject> Properties> Source / Binary Format: JDK 7. Однако при сборке (myProject> Clean and Build) я получил аналогичное предупреждение: warning: [options] путь к классу начальной загрузки не установлен в сочетании с -source 1.7.
Решением было добавить платформу Linux Mint JDK1.7 в список платформ Netbeans.
Это можно сделать, перейдя в myProject> Properties> Libraries и нажав кнопку Manage Platforms ... Затем в окне Java Platform Manager нажмите Add Platform ... и выберите: Java Standard Edition, нажмите Next и перейдите в / usr / lib / jvm / java-7-openjdk-amd64 (или в другое место, где находится версия JDK 1.7. ). Имя платформы будет установлено на JDK1.7. Просто нажмите «Готово», и все готово.
Теперь вы можете выбрать платформу Java в свойствах проекта. Выбрав JDK1.7 и запустив Clean and Build: никаких предупреждений. :-)
Предупреждение можно отключить с помощью новой подопции JDK 7 в семействе -Xlint, -Xlint: -options. например
$ javac -source 1.5 -Xlint: -options example.java
источники: https://blogs.oracle.com/darcy/entry/bootclasspath_older_source
а также
http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#xlintwarnings
Предупреждения, которые можно включить или отключить с помощью параметра -Xlint
Включите имя предупреждения с помощью опции -Xlint: name, где name - одно из следующих имен предупреждений. Точно так же вы можете отключить имя предупреждения с помощью опции -Xlint: -name: ...
options Предупреждает о проблемах, связанных с использованием параметров командной строки. См. Пример такого предупреждения в примере кросс-компиляции.
Убедитесь, что ваша версия jdk и исходная версия компилятора java совпадают. Например, если вы используете maven и настроили проект с использованием JDK 9, то следующий фрагмент pom будет через указанное выше предупреждение
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
...
</configuration>
</plugin>
Исправление исходной / целевой версии до 9 устраняет предупреждение, как показано ниже.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>9</source>
<target>9</target>
...
</configuration>
</plugin>
Загрузите JDK (в письменной версии с предупреждением) -> установить
Щелкните правой кнопкой мыши свой проект -> Свойства -> Библиотеки -> Платформа Java (добавьте установленный JDK) -> ОК