Запуск нескольких версий Java

Надеюсь, кто-то может мне помочь, потому что у меня, по-видимому, мозг мертв. Я искал и читал много этого форума, а также других для помощи в решении моей проблемы, и я просто не понимаю.

У меня есть 2 веб-приложения Java, которые мне нужно запустить для блоков Johnson Control HVAC. Один модуль устарел и строго требует Java 1.6.0_21. Для этого устройства нет доступных вариантов обновления. Всего сотни тысяч долларов на замену всей системы. Но система работает просто отлично, поэтому я не заинтересован в ее замене.

Теперь у меня есть другое устройство, которое моя компания только что приобрела в другом месте, которое использует аналогичный блок управления, но работает на Java 1.7.0_49 или 69, я не помню. У меня на компьютере установлены обе версии, но работает только новая версия с Java 1.7. Мой старый теперь выдает ошибку «Невозможно запустить приложение». Я пробовал все эти вещи, и либо я просто делаю это неправильно, либо что-то еще, чего я не догоняю.

Я попытался зайти в панель управления Java и снять флажок «Включить 1.7. Это не повлияло, даже после перезагрузки.

Я вошел в переменные среды и в разделе «Путь» у меня нет пути к Java. Поэтому я добавил путь к версии Java 1.6, что также не повлияло.

У меня на рабочем столе есть пакетный файл для запуска старого приложения, потому что его веб-адрес имеет длину в милю. В этом пакетном файле я попытался добавить заданную переменную JAVA_HOME и заданную переменную PATH для Java 1.6, что также не повлияло.

Я попытался просто выполнить java -version:1.6 из командной строки cmd, что также не позволило запустить программу.

Я получил это так, когда я сделал java -version из командной строки, он сказал мне 1.6.0_21 для версии, но я все еще не могу загрузить программу.

Поэтому я удалил 1.7 с компьютера и попробовал еще раз. Все равно не загрузится программа. Мне пришлось переустановить 1.6, прежде чем заработала старая программа. Но как только я переустановил 1.7, я снова оказался в той же лодке.

Я попытался переустановить обе программы с помощью команды STATIC=1 через командную строку cmd, но по-прежнему работает только версия 1.7, а старая версия 1.6 — нет.

Я получаю сообщение, когда пытаюсь загрузить 1.6, в котором говорится, что программа запросила более старую устаревшую версию программы. Открыть с рекомендованной новой версией или открыть в более старой запрошенной версии 1.6.0_21. Я выбираю открыть в более старой версии, но все равно получаю ошибку «Не удается запустить приложение».

Я также попытался зайти в дополнительные настройки и снять флажок Internet Explorer для браузера в панели управления 1.7, а затем войти в панель управления 1.6 и проверить Internet Explorer.

Что я здесь делаю неправильно или чего мне не хватает? Любая помощь будет оценена по достоинству.

Это компьютер с 32-битной Windows XP. Ничего особенного, просто текстовый процессор.


person Brian McKenzie    schedule 03.10.2014    source источник
comment
Ничего не зная о том, как вы пытаетесь запустить программу, трудно помочь. Это отдельное локальное приложение? Вебстарт? Апплет? И Т. Д.   -  person Dave Newton    schedule 03.10.2014


Ответы (1)


Вы плывете против течения, но это не очень большой или сильный поток, и это можно сделать.

Восходящая часть заключается в том, что большинство инструкций для этого предполагают, что вы собираетесь запускать только одну версию JVM на данной машине.

Хорошей новостью является то, что Java не требует этого и не настроена так, чтобы было трудно запускать два одновременно. Вы просто должны быть строгими в отношении того, откуда каждый из них получает информацию.

Я бы рекомендовал не "устанавливать" НИ ОДНОГО из них. Не помещайте каталоги исполняемых файлов или библиотек в переменную пути и не определяйте переменную CLASSPATH на машине глобально. Вам нужно будет распаковать среду выполнения для каждой JVM, каждую в отдельном дереве каталогов.

Создайте один пакетный файл для запуска каждой версии. Он определит свою собственную переменную пути и свой собственный путь к классам (либо с помощью SET CLASSPATH=, либо с использованием аргумента JVM пути к классам).

Удачи.

person arcy    schedule 03.10.2014