Подтвердить что ты не робот

Bootstrap class path не установлен

Итак, я получаю warning: [options] bootstrap class path not set in conjunction with -source 1.6

И я собираюсь задать три вопроса. Я понимаю, что мне нужно установить путь к бутстрапу, но я не уверен, что понимаю, как это сделать. Быстрый Google просто отправил меня на страницы, которые цитировались на странице Oracle, но я прочитал страницу Oracle и не чувствовал, что я ее очень хорошо понял.

В настоящее время я запускаю этот код в Netbeans, поэтому все, что мне нужно сделать, это нажать кнопку воспроизведения, чтобы он мог компилироваться и запускаться. Есть ли свойство, которое диктует, как это будет скомпилировано, чтобы я мог добавить в путь класса bootstrap?

Кроме того, для предстоящей вероятности, что я отключу ее только от Netbeans и запустив ее из командной строки, каков правильный способ скомпилировать с помощью пути класса bootstrap? Говорят, что $ javac -source 6 HelloWorld.java, но просто сказать, что -source 1.6 действительно является решением?

Возможно, еще больший вопрос в том, как мне избежать этого типа предупреждения в будущем? Если я понимаю немного, я ссылаюсь на старый источник java и, следовательно, на более старые методы. Я не уверен, как и когда это произошло.

4b9b3361

Ответ 1

Вы выполняете кросс-компиляцию. Вы используете компилятор JDK 7 для компиляции классов для JDK 6. Это нормально, но чтобы избежать проблем, компилятор хочет получить доступ к JDK 6 rt.jar. Причиной этого является то, что вы действительно можете генерировать классы, которые не работают с JDK 6, потому что вы можете использовать старые правила языка (в данном случае 1.6), но совершенно новые классы начальной загрузки. Например, некоторые методы могут отсутствовать в старшем JDK. Таким образом, вы получаете свою компиляцию, но как только вы запустите программу, она может взорваться с помощью MethodNotFoundException.

Пара решений, вы можете просто выбрать один

  • Укажите rt.jar из JDK 6. Почему бы не использовать более старый компилятор, чем даже?
  • Использовать компилятор JDK 6 (он содержит rt.jar). Почему даже использовать 7, если нет 7 функций.
  • Игнорируйте предупреждение и получите хорошее покрытие для тестирования, чтобы убедиться, что вы не используете функции Java 7
    • Я не знаю о NetBeans, но в Eclipse вы также можете сказать, что вы компилируете против JDK 6, поэтому он не будет компилироваться, если вы используете функции Java 7.
  • Измените бизнес-потребности и скомпилируйте для Java 7.

Ответ 2

Просто щелкните правой кнопкой мыши по свойствам проекта, а затем перейдите в Binding и выберите JDK 1.7, если вы используете его в своем проекте NetBeans, и именно по этой причине вы получаете эту проблему. Это поможет решить проблему и сработает для меня.

Ответ 3

Я понимаю, что мне нужно установить путь к bootstrap, но я не уверен, что понимаю, как это сделать.

В Netbeans 8.0.2 перейдите по ссылке:

Run > Set Project Configuration > Customise...

В окне "Категории" перейдите к:

Build > Compiling

Нижнее поле - "Дополнительные параметры компилятора", к которому вы можете добавить:

-bootclasspath /your/path/to/lower/java/version/lib/rt.jar

Ответ 4

Имел тот же самый Предупреждение, компилирующийся на консоли на macOS. Здесь добавляется опция-компилятор

-bootclasspath /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar

Обратите внимание, что в macOS для версий Java <= 1.6 (выпущенных Apple) rt.jar называется classes.jar