Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java 5 и Java 6 
:(
    Опции темы
techmax
Дата 18.9.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 5.9.2007
Где: Красноярск

Репутация: 2
Всего: 2



Можно ли использовать классы скомпилированные по 6 при работе на 5 java, если используется к 
некоторые фитчи из 6 к примеру.
Код

String javaVersion = System.getProperty("java.version");
      if(javaVersion != null && javaVersion.startsWith("1.6")){
        System.out.println("Desktop " + javaVersion);
        java.awt.Desktop.getDesktop().open(file);
      } else{
        System.out.println(javaVersion);
          String fileName = file.getAbsolutePath();
        java.lang.Runtime.getRuntime().exec( getRunCommand(fileName),null, file.getParentFile());

      }

Я протестировал вроде работает. Но не возникнут ли какие-нибудь грабли

PM MAIL Skype   Вверх
LSD
Дата 18.9.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(techmax @  18.9.2007,  11:58 Найти цитируемый пост)
Я протестировал вроде работает. Но не возникнут ли какие-нибудь грабли

Уж не знаю как ты тестировал, но в JDK 1.5 класса java.awt.Desktop нет и соответственно твой код при запуске выкинет ClassNotFoundException.

Это сообщение отредактировал(а) tux - 19.9.2007, 00:13


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
techmax
Дата 19.9.2007, 04:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 5.9.2007
Где: Красноярск

Репутация: 2
Всего: 2



Как тестировал. Скомпилил под JDK 1.6. И запустил Jar файл под 1.5. 
Так он же  обращается к java.awt.Desktop  только когда версия 1.6.
И как я понимаю если не использую какой-то класс то JVm должно быть без разницы существует он или нет,
насколько я помню загрузка класс начинается при обращении к нему
PM MAIL Skype   Вверх
UnicornMirage
Дата 19.9.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 15.11.2005

Репутация: 1
Всего: 1



Код

И как я понимаю если не использую какой-то класс то JVm должно быть без разницы существует он или нет,
насколько я помню загрузка класс начинается при обращении к нему

думаю что это верно, и твой код будет работать пока не наткнется во времени выполнения на несуществующий класс.. 
PM MAIL   Вверх
bars_uz
Дата 20.9.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 26.3.2005
Где: Tashkent

Репутация: нет
Всего: нет



Как Я понемаеу эта реалн...  если ти будеш проверять  JVM то может бит твоя идея проканает
PM MAIL ICQ   Вверх
AxNe0
Дата 24.9.2007, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 24.4.2006
Где: St. Petersburg

Репутация: 4
Всего: 5



LSD прав. Ты запускаешь метод своего класса A, написанного на 5-й версии, он обращается к классу B, скомпиленному в 6-й. Класс B вызывает метод класса C, которого не существует. И тут, о чудо! Точнее нет, не чудо, а вполне адекватная реакция JVM - летит ClassNotFoundException! ;)


--------------------
SCJP 6, SCBCD 5, OCEWSD 6
blog
PM ICQ Skype   Вверх
techmax
Дата 25.9.2007, 04:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 5.9.2007
Где: Красноярск

Репутация: 2
Всего: 2



Я понимаю что если класса не существует вылетит ClassNotFoundException. Но дело в том что я знаю что этого класса нет и в зависимости от версии JVM обращаюсь к тому методу который существует. И весь вопрос в том не возникнет ли при этом каких-нибудь проблем. А то очень не хочется вести разные билды для разных JVM
PM MAIL Skype   Вверх
AxNe0
Дата 25.9.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 24.4.2006
Где: St. Petersburg

Репутация: 4
Всего: 5



так бы сразу и сказал smile в таком случае, думаю, будет нормально работать... Но я бы на твоем месте сделал под более старой версией JDK, если уж так важна совместимость с 1.5


--------------------
SCJP 6, SCBCD 5, OCEWSD 6
blog
PM ICQ Skype   Вверх
techmax
Дата 25.9.2007, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 5.9.2007
Где: Красноярск

Репутация: 2
Всего: 2



Просто хочется использовать некоторые возможности Java 6. А пока все клиенты переедут на 6 пройдет очень много времени
PM MAIL Skype   Вверх
lando1
Дата 26.9.2007, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 30.4.2007

Репутация: нет
Всего: нет



ну можешь проверять есть ли в JVM класс java.awt.Desktop - ежели есть - то jdk не менее 6.
PM MAIL ICQ   Вверх
COVD
Дата 26.9.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 17
Всего: 43



Цитата

А пока все клиенты переедут на 6 пройдет очень много времени 


Если профессиональная деятельность клиентов далека от программирования, то, возможно, они никогда не переедут, если их не вынудить.  smile 
PM MAIL   Вверх
techmax
Дата 27.9.2007, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 5.9.2007
Где: Красноярск

Репутация: 2
Всего: 2



Цитата(lando1 @ 26.9.2007,  19:09)
ну можешь проверять есть ли в JVM класс java.awt.Desktop - ежели есть - то jdk не менее 6.

Лучше наоборот если jdk 6 то в нем есть java.awt.Desktop. 
PM MAIL Skype   Вверх
SergikXP
Дата 3.10.2007, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.10.2006

Репутация: нет
Всего: -1



А как у вас получилось запустить приложение скомпилированное 6й явой на 5й?
в 6й совсем другой ClassLoader... и 5я вроде как о нйм совсем не знает...?
PM MAIL   Вверх
techmax
Дата 4.10.2007, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 5.9.2007
Где: Красноярск

Репутация: 2
Всего: 2



Не понял вопроса? в каком смысле другой ClassLoader? 
Как запустил java - jar test.jar
PM MAIL Skype   Вверх
jaspeen
Дата 4.10.2007, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чертяка



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.10.2007

Репутация: нет
Всего: нет



Я вот получаю 
Код
java.lang.UnsupportedClassVersionError

при попытке запустить шото скомпиленное под 6-ю на 5-й.
Вроде как так и должно быть, нет?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0881 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.