Java 5 во время выполнения в Java 6 Hotspot - PullRequest
0 голосов
/ 01 марта 2012

Есть ли способ запустить горячую точку Java 6 в среде выполнения Java 5? У меня есть некоторый код, который зависит от поведения более старых реализаций классов, но я бы хотел использовать более новую JVM. У меня есть планы по переносу кода на Java 6 (или, возможно, 7!), Но сейчас я больше заинтересован в том, чтобы выяснить, есть ли у меня проблема с JVM.

Ответы [ 3 ]

1 голос
/ 01 марта 2012

Я думаю, что вам лучше с одним из следующих:

  • Выясните, можете ли вы изменить код своего приложения, чтобы обойти ошибку XSLT в Java 6.

  • Узнайте, есть ли поддерживаемое Sun / Oracle исправление для ошибки XSLT в Java 6.

  • Используйте Java 5 JRE.

  • Попробуйте последнюю версию Java 6 JRE, чтобы увидеть, исправлена ​​ли там ошибка XSLT.

  • Попробуйте последнюю версию Java 7 JRE, чтобы увидеть, исправлена ​​ли там ошибка XSLT..

Проблема с использованием Java 5 rt.jar в Java 6 JVM заключается в том, что существуют скрытые зависимости между основными классами в rt.jar и реализацией собственного кода JVM.;т.е. java двоичные и связанные с ними нативные библиотеки.Они не документированы, и (IMO) весьма вероятно, что некоторые из них изменились между Java 5 и Java 6.


Если между ними есть собственные несовместимости, похоже, что яМне осталось взять определенные классы, которые мне нужны, и либо заменить их в rt.jar, либо переопределить их с помощью extdir.

Подобные взломы Java не очень хорошая идея.Как минимум, вам придется повторять взлом каждый раз, когда вы загружаете и устанавливаете последнюю версию Java 6 JRE на платформу вашего приложения.(И если вы предоставляете это приложение другим, то у них тоже есть проблема.)

И в моем оригинале есть еще 2 варианта, которые вы могли бы использовать вместо этого: исправьте приложение, чтобы обойти проблему, и оставайтесьс Java 5.


Ошибка существует в XSLT Java 7 и в последней версии Xalan

Рассматривали ли вы возможность того, что это не ошибка ввсе?Может быть, это исправление предыдущей ошибки или разрешенного поведения в рамках соответствующих спецификаций, и ваш код виноват в зависимости от предыдущего (ошибочного?) Поведения.

Есть ли отчеты об ошибках в Java/ Xalan ошибка базы данных для этой ошибки?Что говорят сопровождающие?Они предлагают обходные пути?(Эти вопросы ДОЛЖНЫ быть заданы ...)

1 голос
/ 01 марта 2012

Это в основном с обратной совместимостью, мы только что перенесли некоторый код 1.4.x в 1.6 (с перекомпиляцией и без нее, следовательно, в двоичный и исходный код), и это сработало.взгляните на каждый крупный выпуск Java-версии, так как всегда есть некоторые несовместимости.Посмотрите на совместимость Java 1.6 с 1.5 и, если вы переносите некоторые более старые версии исходного / двоичного кода, проверьте все основные версии Java-страниц, чтобы увидеть, не попадаете ли вы в несовместимость.* Редактировать: в своем вопросе вы написали, что хотите, чтобы Hotspot 1.6 (JVM) работал с JRE 1.5?Вы знаете, что JRE включает JVM, вы уверены в том, что только что спросили?

0 голосов
/ 01 марта 2012

Я не уверен, правильно ли я понимаю ваш вопрос, но если вы скомпилировали свой код с помощью компилятора java 5, то да, вы можете запустить его на java 6 vm без проблем.

...