2014-01-22 2 views
0

Есть ли способ указать конкретное местоположение JRE/JDK для запуска приложения JWS? Я изучаю фактическое местоположение JRE, а не только его версию через элемент Java SE из JNLP-файла. Я не хочу обращаться к какой-либо системе JRE, я только хочу использовать что-то в комплекте с моим приложением.Задание местоположения JRE для запуска приложения JWS

В настоящее время я пытаюсь связать 1.6_45 с моим приложением. Однако я сталкиваюсь с проблемами, когда пользователь имеет установленную 1.7_xx JRE в своей системе. Он блокирует запуск приложения webstart. Банки сами подписываются, и получение их подписей с помощью центра сертификации не является вариантом, так как оно слишком $$. Я изменил тег версии j2se в своем jnlp, чтобы сказать 1.6 *, и это позволило ему работать с 1.7_xx. Одна ошибка раздалась.

Теперь проблема заключается в том, что системы обновляются до версии 1.6_71 [private oracle version], которая, по-видимому, содержит в себе 1,7 исправления безопасности. Итак, теперь из-за jnlp-тега, имеющего 1.6 *, мое приложение поднимает 1.6_71 и полностью висит. Webstart просто открывает консоль java и зависает. Я попытался добавить -Djnlpx.home в jnlp java-vm-args, указав на связанный jre/bin, но не повезло.

Один из способов, которым я попытался [из сообщения здесь, на SO], - создать ярлык для моих конкретных javaws, передавая местоположение файла jnlp в качестве параметра. Это не сработало. Он по-прежнему поднял 1.6_71 и повесил.

На данный момент, если я буду больше заниматься Google, его начнет показывать мне капчу ... вздох. Любые указатели приветствуются! Благодаря!

ответ

1

Есть ли способ указать конкретное местоположение JRE/JDK для запуска приложения JWS?

Короткий ответ, нет. Длинный ответ, нет.

+0

Я боялся этого. Любые другие предложения относительно того, как я могу заставить свое приложение работать? –

+0

См. Комментарии в [этом ответе] (http://stackoverflow.com/a/21247298/418556) для получения (потенциально) бесплатного цифрового сертификата. –

0

Последняя версия Oracle по обновлению Java 7 Update 51 включает новые изменения безопасности, которые блокируют некоторые приложения. Это новый «базовый уровень безопасности» и, по-видимому, эквивалентный уровень кода для 1,6.

Один из вариантов конфигурации, который помогает определить, что именно происходит, - это уровень безопасности, который находится на вкладке «Безопасность» (панель управления Windows) -> Java. Если вы установите уровень безопасности на самом низком уровне (не помните имя), вы можете не блокироваться. Уровень безопасности Высокий будет блокировать неподписанные и самозаверяющие. Уровень безопасности Очень высокий будет еще более ограничительным, например, блокирование истекшего приложения - это значит, что срок действия сертификата истек.

Кроме того, может быть, вы могли бы попробовать установить конкретный уровень JRE вы хотите запустить - увидеть ссылку http://docs.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html#jnlp для получения дополнительной информации.

+0

К сожалению, его корпоративное приложение распространяется среди клиентов, поэтому мы не можем попросить их уменьшить параметры безопасности на своих машинах. Как я уже упоминал в своем вопросе, я не могу настроить jre на то, чтобы указать на младшую версию 1.6, потому что тогда 1.7, присутствующий на машине, блокирует запуск. Мы в значительной степени решили, что подписать наши банки с доверенным сертификатом CA - лучший вариант. Thx –

+0

Согласовано - это действительно единственный способ и гораздо более безопасный. Удачи! – mikemil

Смежные вопросы