Как скомпилировать Java-совместимый код под JDK 9 (eclipse) [duplicate]

Типы ссылок по умолчанию равны null, чтобы указать, что они не ссылаются на какой-либо объект. Следовательно, если вы попытаетесь получить доступ к объекту, на который ссылаетесь, а его нет, вы получите исключение NullReferenceException.

Для Ex:

SqlConnection connection = null;
connection.Open();

Когда вы запускаете это кода, вы получите:

System.NullReferenceException: Object reference not set to an instance of an object.

Вы можете избежать этой ошибки, например, следующим образом:

if (connection != null){
    connection.Open();
}

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

27
задан user26270 29 March 2010 в 20:07
поделиться

5 ответов

Чтобы уточнить, у вас есть JAVA_HOME, установленный как системная переменная или установленный в переменные пути класса Eclipse? Я уверен (но не совсем уверен!), Что системная переменная используется компилятором командной строки (и Ant), но Eclipse изменяет эту привязку к используемому JDK

1
ответ дан bcoughlan 22 August 2018 в 11:52
поделиться
  • 1
    JAVA_HOME устанавливается как системная переменная. Я не думаю, что он задан в переменных класса Eclipse. – user26270 29 March 2010 в 21:59
  • 2
    То, что я хотел сказать, состоит в том, что Eclipse сортирует его в зависимости от выбранного вами JDK, не означает, что нужно вводить его в кластерные классы. Дело в том, что Eclipse не использует переменную JAVA_HOME системы – bcoughlan 29 March 2010 в 23:44
  • 3
    Вы говорите, что Eclipse устанавливает свой JAVA_HOME на основе выбранного вами JDK? Где вы выбираете JDK? – user26270 30 March 2010 в 15:45

В строке меню: Проект -> Свойства -> Компилятор Java

Включить специальные настройки проекта (отмечен) Снимите флажок «Использовать соответствие из среды исполнения» .... Выберите желаемый «уровень соответствия компилятора»

Это позволит вам скомпилировать код «1.5» с помощью JDK «1.6».

Если вы хотите использовать 1,5 JDK для создания «1,5-дюймового» кода, тогда установите подходящий 1,5 JDK и скажем затмение, где он установлен через:

Окно -> настройки -> Установленные JREs

Затем вернитесь к проекту

Project -> свойства -> Java Build Path -> libraries

удалить языковые версии 1.6 и: добавить библиотеку ... -> JRE System LIbrary -> Alternate JRE -> JRE, который вы хотите.

Убедитесь, что правильная JRE находится на пути построения проекта, сохраните все и наслаждайтесь!

43
ответ дан Edwin Buck 22 August 2018 в 11:52
поделиться
  • 1
    Я уже сделал все это, за исключением снятия флажка «Использовать параметры соответствия по умолчанию» для Java-компилятора проекта. Я снял флажок, очистил и перестроил свой проект, и все еще имел ошибки Java 1.6. Я использую Eclipse 3.3 в случае, если это имеет значение. Я заметил, что параметр «Использовать параметры соответствия по умолчанию» для проекта не сохранился, даже после того, как я нажал «Применить» и ОК. Я даже удалил местоположение java 1.6, на которое указывал JAVA_HOME. Итак, теперь я действительно не знаю, откуда его компилятор Java 1.6. – user26270 29 March 2010 в 20:59
  • 2
    Непонятно, устанавливаете ли вы JAVA_HOME перед запуском Eclipse или если вы устанавливаете JAVA_HOME в каком-то диалоговом окне в приложении Eclipse. Если перед запуском Eclipse вы меняете JVM, в котором работает Eclipse; лучше всего отменить свои изменения, поскольку вы решаете неправильную проблему. Если вы устанавливаете его в диалоговом окне Eclipse, среда псевдо-подчиненного запуска Eclipse не переопределяет настроенную JVM Eclipse, которую вы указываете для запуска. Вы можете видеть желаемый JDK в Windows - & gt; Предпочтения - & gt; Установленные JRE? Как насчет «Окружения выполнения»? – Edwin Buck 29 March 2010 в 23:36
  • 3
    Когда я упоминаю JAVA_HOME, я имею в виду настройку системной переменной (из свойств «Мой компьютер»), которая существует до запуска Eclipse. Я не изменяю JAVA_HOME изнутри Eclipse в любом месте. Да, я вижу JDK 5, который мне нужен, в установках Windows и & gt; Preferences- & gt; Установленные JRE и среды выполнения. Я не уверен, где все JRE в среде выполнения. Там есть JavaSE-1.6, который указывает «идеальное соответствие» для Java 5 JRE. – user26270 30 March 2010 в 15:07
  • 4
    Эта система JAVA_HOME не имеет ничего общего с внутренними средами Eclipse. JavaSE-1.6 поддерживает компиляцию на Java 1.5. Вот почему это идеальное сочетание для целей Java 5. Вам не нужно устанавливать Java 1.5 для компиляции кода, который будет работать на 1,5 JVM. Если вы хотите скомпилировать только Java 5 JDK, измените путь создания проекта, удалив JDK, который вы используете сейчас, и включая системные библиотеки для 1.5 JDK, которые вы хотите использовать. Если вы не можете включить 1.5 JDK-библиотеки, то вероятность того, что вы не настроили JDK, а скорее JRE в «Установленные JRE и среды выполнения», – Edwin Buck 30 March 2010 в 22:09

Eclipse использует собственный внутренний компилятор, который может скомпилировать несколько версий Java.

Из справки Eclipse> Руководство по разработке Java> Понятия> Java Builder

Конструктор Java создает Java-программы, используя собственный компилятор (компилятор Eclipse для Java), который реализует спецификацию языка Java.

Для Eclipse Mars.1 Release (4.5.1) это может указывать на 1.3 до 1.8 включительно.

Когда вы настраиваете проект:

[project-name] > Properties > Java Compiler > Compiler compliance level

Это настраивает компилятор Eclipse Java для компиляции кода в указанную версию Java, обычно 1.8 сегодня.

Переменные среды хоста, например JAVA_HOME и т. д., не используются.

Компилятор Oracle / Sun JDK не используется.

3
ответ дан Kevin Swann 22 August 2018 в 11:52
поделиться

Во-первых, устанавливаете ли вы желаемую JRE или ваш желаемый JDK?

Даже если ваш Eclipse настроен правильно, может быть какая-то сумасшедшая настройка для проекта. Вы можете открыть контекстное меню по заданному Java-проекту в Project Explorer и выбрать «Свойства»> «Компилятор Java», чтобы проверить это.

Если ни одно из этого не помогает, оставьте комментарий, и я возьму другой взгляд .

2
ответ дан Pops 22 August 2018 в 11:52
поделиться
  • 1
    Я пытаюсь установить желаемый JDK. Вся соответствующая информация должна быть в исходном сообщении и в комментарии к другому ответу. – user26270 29 March 2010 в 21:00
  • 2
    Было совершенно преднамеренно, что я спросил, что вы настраиваете, а не то, что вы пытались установить. Вы сказали JRE несколько раз в вопросе, но не сказали JDK один раз. В любом случае, я проверю ваш другой комментарий. – Pops 29 March 2010 в 21:12

Другой подход для установки компилятора JDK 1.8 с Maven использует этот плагин:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
        <verbose>true</verbose>
        <fork>true</fork>
        <executable>C:\Program Files\Java\jdk1.8.0_102\bin\javac</executable>
        <source>1.8</source>
        <target>1.8</target>
     </configuration>
 </plugin>
0
ответ дан tjm1706 22 August 2018 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: