Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Java 5 и Java 6 |
Автор: techmax 18.9.2007, 10:58 | ||
Можно ли использовать классы скомпилированные по 6 при работе на 5 java, если используется к некоторые фитчи из 6 к примеру.
Я протестировал вроде работает. Но не возникнут ли какие-нибудь грабли |
Автор: techmax 19.9.2007, 04:49 |
Как тестировал. Скомпилил под JDK 1.6. И запустил Jar файл под 1.5. Так он же обращается к java.awt.Desktop только когда версия 1.6. И как я понимаю если не использую какой-то класс то JVm должно быть без разницы существует он или нет, насколько я помню загрузка класс начинается при обращении к нему |
Автор: UnicornMirage 19.9.2007, 11:58 | ||
думаю что это верно, и твой код будет работать пока не наткнется во времени выполнения на несуществующий класс.. |
Автор: bars_uz 20.9.2007, 13:39 |
Как Я понемаеу эта реалн... если ти будеш проверять JVM то может бит твоя идея проканает |
Автор: AxNe0 24.9.2007, 21:13 |
LSD прав. Ты запускаешь метод своего класса A, написанного на 5-й версии, он обращается к классу B, скомпиленному в 6-й. Класс B вызывает метод класса C, которого не существует. И тут, о чудо! Точнее нет, не чудо, а вполне адекватная реакция JVM - летит ClassNotFoundException! ;) |
Автор: techmax 25.9.2007, 04:41 |
Я понимаю что если класса не существует вылетит ClassNotFoundException. Но дело в том что я знаю что этого класса нет и в зависимости от версии JVM обращаюсь к тому методу который существует. И весь вопрос в том не возникнет ли при этом каких-нибудь проблем. А то очень не хочется вести разные билды для разных JVM |
Автор: AxNe0 25.9.2007, 08:29 |
так бы сразу и сказал ![]() |
Автор: techmax 25.9.2007, 09:24 |
Просто хочется использовать некоторые возможности Java 6. А пока все клиенты переедут на 6 пройдет очень много времени |
Автор: lando1 26.9.2007, 19:09 |
ну можешь проверять есть ли в JVM класс java.awt.Desktop - ежели есть - то jdk не менее 6. |
Автор: COVD 26.9.2007, 20:21 | ||
Если профессиональная деятельность клиентов далека от программирования, то, возможно, они никогда не переедут, если их не вынудить. ![]() |
Автор: techmax 27.9.2007, 04:40 | ||
Лучше наоборот если jdk 6 то в нем есть java.awt.Desktop. |
Автор: SergikXP 3.10.2007, 16:03 |
А как у вас получилось запустить приложение скомпилированное 6й явой на 5й? в 6й совсем другой ClassLoader... и 5я вроде как о нйм совсем не знает...? |
Автор: techmax 4.10.2007, 03:55 |
Не понял вопроса? в каком смысле другой ClassLoader? Как запустил java - jar test.jar |
Автор: jaspeen 4.10.2007, 20:53 | ||
Я вот получаю
при попытке запустить шото скомпиленное под 6-ю на 5-й. Вроде как так и должно быть, нет? |
Автор: techmax 5.10.2007, 04:21 |
Это наверное из-за того что при компиляции надо указать под JDK 6 что-то типа ключа target v 5.0. Если не сложно то опубликуй кусок кода который не работает. Я так и не определился стоит ли так делать. Хотя где-то встречал использование различных классов в зависимости от версии JVM только не как не могу вспомнить где. |