Возможно создать код Java с помощью JDK 1.6 для работы JRE 1.5?

Существует ли опция создать код Java для работы JRE 1.5 при компиляции с помощью JDK 1.6?

PS: Я плохо знаком с Java.

6
задан amit 3 June 2013 в 04:28
поделиться

4 ответа

Если вы скомпилируете код с версией 1.6, то он не будет работать с версией 1.5. Если вы хотите, чтобы он запускался в 1.5, вы можете скомпилировать код с 1.5, и он сможет работать на обоих.

Попробуйте скомпилировать с 1.5 и, если есть ошибки, опубликуйте их. Единственный способ, при котором он не будет компилироваться на 1.5, - это если вы используете в своем коде определенные улучшения 1.6.


Чтобы ответить на настоящий вопрос.

  javac -target 1.5

См. здесь для более подробной информации.

10
ответ дан 8 December 2019 в 03:09
поделиться

Да, можно. См. http://java.sun.com/javase/6/docs/technotes/tools/windows/javac.html и найдите раздел «Параметры кросс-компиляции». Короче говоря, вам нужно указать -target = 1.5 для javac. Ant, конечно же, поддерживает этот флаг.

10
ответ дан 8 December 2019 в 03:09
поделиться

Взгляните на параметры javac "-source" и "-target":

http://java.sun.com/javase/6/docs/technotes/tools/ windows / javac.html

-source release

Задает версию принятого исходного кода. Допускаются следующие значения для выпуска:

  • 1.3 Компилятор не поддерживает утверждения, обобщения или другие языковые функции, представленные после JDK 1.3.
  • 1.4 Компилятор принимает код, содержащий утверждения, которые были введены в JDK 1.4.
  • 1.5 Компилятор принимает код, содержащий универсальные шаблоны и другие языковые функции, представленные в JDK. 5.
  • 5 Синоним 1.5.
  • 1.6 Это значение по умолчанию. В Java SE 6 не было внесено никаких языковых изменений. Однако ошибки кодирования в исходных файлах теперь сообщаются как ошибки, а не как предупреждения, как ранее.
  • 6 Синоним 1.6.

+

-target версия

Создает файлы классов, нацеленные на указанную версию виртуальной машины. Файлы классов будут выполняться на указанной цели и в более поздних версиях, но не в более ранних версиях виртуальной машины. Допустимые цели: 1,1 1,2 1,3 1,4 1,5 (также 5) и 1,6 (также 6).

Значение по умолчанию для -target зависит от значения -source: - Если -source не указан, значение -target 1,6

  • Если -source равно 1,2, значение -target 1,4
  • Если -source равно 1,3, значение -target равно 1,4
  • Для всех других значений -source значение значение -target является значением -source.
6
ответ дан 8 December 2019 в 03:09
поделиться

Все зависит от того, какие API вы используете. Такие вещи, как Swing, Instrumentation, JConsole и т. Д., Со временем меняются.

Если вы попробуете:

http://www.coderanch.com/t/382318/Java-General/java/New-Features-Java

в нем есть ссылки на страницы, указывающие на различия между каждой из последних основных версий:

http://java.sun.com/javase/6/webnotes/features.html

- это список измененных / новые функции в последней версии.

Надеюсь, это даст вам некоторое представление.

И, конечно же, вам нужно будет скомпилировать его до версии 1.5, чтобы он работал с этой JRE.

4
ответ дан 8 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

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