Существует ли опция создать код Java для работы JRE 1.5 при компиляции с помощью JDK 1.6?
PS: Я плохо знаком с Java.
Если вы скомпилируете код с версией 1.6, то он не будет работать с версией 1.5. Если вы хотите, чтобы он запускался в 1.5, вы можете скомпилировать код с 1.5, и он сможет работать на обоих.
Попробуйте скомпилировать с 1.5 и, если есть ошибки, опубликуйте их. Единственный способ, при котором он не будет компилироваться на 1.5, - это если вы используете в своем коде определенные улучшения 1.6.
Чтобы ответить на настоящий вопрос.
javac -target 1.5
См. здесь для более подробной информации.
Да, можно. См. http://java.sun.com/javase/6/docs/technotes/tools/windows/javac.html и найдите раздел «Параметры кросс-компиляции». Короче говоря, вам нужно указать -target = 1.5 для javac. Ant, конечно же, поддерживает этот флаг.
Взгляните на параметры 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.
Все зависит от того, какие 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.