2009-09-15 3 views
0

Я пишу программу Java с помощью JAVA 6. Наш сервер компании использует JAVA 5. Они отказываются обновлять его до 6, поэтому обходным решением будет установка другой JRE 6 внутри той же машины. Они задаются вопросом, будет ли установка другой версии JRE приводить к нестабильности?Будет ли установка другой версии JRE на одном сервере причиной нестабильности?

Что делает процесс установки? Просто скопируйте файлы и настройте переменную окружения? Изменит ли он какой-либо реестр или другие настройки?

ответ

4

Несколько JRE могут находиться на одной машине. Однако, если вы устанавливаете JRE6, это то же самое, что и обновление до Java 6. Java 6 (насколько я могу судить) может запускать весь старый Java-код. Однако двоичные файлы Java 6 (.class и .jar) не могут быть выполнены с использованием Java 5, если они не были скомпилированы для таргетинга на предыдущую версию.

Если вам нужно, вы можете настроить таргетинг на Java 5 с помощью Java 6 JDK. Существуют аргументы командной строки для javac, которые вы можете использовать (или включить в Ant и, возможно, другие инструменты сборки), чтобы указать целевую JRE. Например, если вы использовали опцию командной строки -target 1.5 с помощью JDK, создаваемые файлы .class или .jar будут исполняться с использованием Java 5 JRE.

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

Если вы используете JAVA_HOME для Java 5 JRE и установите новую переменную среды на Java 6 Java Home, допустим, JAVA_1.6, если вы правильно ссылаетесь на правильную переменную среды, вы должны быть в порядке.

+0

Мы получили информацию о сервере почти в конце проекта :(И программа Java уже завершена и протестирована. Если нам не предоставлено дополнительное время для тестирования нашего кода, в противном случае более безопасно устанавливать новую JRE, а затем понижать наш код. – janetsmith

+0

Если вы не использовали функции, новые для Java 6, вам просто нужно перекомпилировать и выкурить тестовое приложение, если вы хотите настроить таргетинг на Java 5. Если вы использовали функции, эксклюзивные для Java 6, вам нужно изменить код или установить новую JRE. Однако, если вы устанавливаете новую JRE вместе с Java 5 JRE, вы должны убедиться, что сервер правильно настроен для использования надлежащей JRE для приложения. –

+0

Скажем, оригинал конфигурации JAVA_HOME = path_to_JRE5 и использовать другую переменную JAVA_1.6 = path_to_JRE6, это будет любая проблема? – janetsmith

0

У вас могут быть оба. Если вы «разрешены», возможно, вы можете связать jre, который вы хотите с вашим приложением? Этот URL говорит о том, как .. http://forums.sun.com/thread.jspa?threadID=708451