Есть ли способ запустить точку доступа Java 6 в среде выполнения Java 5? У меня есть код, который зависит от поведения более старых реализаций классов, но я бы хотел использовать более новую JVM. У меня есть планы перенести код на Java 6 (или, может быть, 7!), Но сейчас меня больше беспокоит, есть ли у меня проблема с JVM.
Среда выполнения Java 5 в точке доступа Java 6
Ответы (3)
Я думаю, вам лучше выбрать одно из следующего:
Выясните, можете ли вы изменить код своего приложения, чтобы обойти ошибку 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.4.x в 1.6 (с перекомпиляцией и без, следовательно, двоичный и исходный), и это сработало.
Я предлагаю вам взглянуть на каждую крупную версию java-версии, поскольку всегда есть некоторые несовместимости. Посмотрите на совместимость Java 1.6 с 1.5, и если вы переносят некоторые старые версии исходного кода / двоичного кода, проверьте страницу всех основных версий java, чтобы узнать, не столкнулись ли вы с несовместимостью.
Изменить: в своем вопросе вы написали, что хотите, чтобы Hotspot 1.6 (JVM) работал с JRE 1.5? Вы знаете, что JRE включает JVM, уверены ли вы в том, о чем только что спросили?
rt.jar
в установке 1.6 на одну из 1.5
установки.
- person millimoose; 01.03.2012
Я не уверен, правильно ли я понял ваш вопрос, но если вы скомпилировали свой код с помощью компилятора java 5, то да, вы можете запустить его на виртуальной машине java 6 без проблем.