2012-06-06 1 views
7

В моей компании мы загружаем и запускаем приложение JNLP, привязанное к JRE 1.6.0_20. Мы используем функцию кеша системы для загрузки JAR.Ошибка запуска Java WebStart при установке JNLP на JRE 1.6 и установлена ​​JRE 1.7

Когда мы устанавливаем JRE 1.7 на ПК, WebStart не запускается. При включении журналов мы видим следующее исключение:

java.lang.ExceptionInInitializerError 
    at com.sun.deploy.net.protocol.https.Handler.openConnection(Unknown Source) 
    at java.net.URL.openConnection(Unknown Source) 
    at com.sun.deploy.net.BasicHttpRequest.createUrlConnection(Unknown Source) 
    at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source) 
    at com.sun.deploy.net.BasicHttpRequest.doGetRequestEX(Unknown Source) 
    at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source) 
    at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source) 
    at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source) 
    at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source) 
    at com.sun.deploy.net.DownloadEngine.getCachedFile(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
    at com.sun.javaws.Main.launchApp(Unknown Source) 
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source) 
    at com.sun.javaws.Main$1.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.ClassCastException: sun.security.ssl.X509TrustManagerImpl cannot be ast to com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager 
    at com.sun.deploy.security.X509ExtendedDeployTrustManager.<init>(Unknown Source) 
    at com.sun.deploy.net.protocol.https.Handler$Initializer$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.deploy.net.protocol.https.Handler$Initializer.<clinit>(Unknown Source) 
... 16 more 

Есть ли известное обходное решение?

+0

Вы когда-нибудь находили больше об этом? Это, кажется, известная ошибка, и единственным обходным решением, которое я нашел, было удаление Java 7 JRE (я мог бы сохранить JDK для разработки, хотя). – haylem

ответ

1

Это проблема установки, проблема запуска плагина для нескольких JRE. Переустановите весь плагин с обновленной версией JRE. See bug database

1

Это может плохо повлиять на вашу ситуацию, но я нашел решение для этой проблемы. Я изменил файл JNLP, чтобы указать, какую JRE использовать. В нашем случае файл JNLP было следующее:

<j2se java-vm-args="-Xmx512m -Dsun.java2d.noddraw=true" version="1.6+"/> 

И судя по всему, «1.6+» позволяет для исполнения под 1.7. Поэтому я снял «+», например, так:

<j2se java-vm-args="-Xmx512m -Dsun.java2d.noddraw=true" version="1.6"/> 

А теперь приложение работает отлично. Если вы можете изменить файл JNLP, который будет отправлен через URL вашего приложения, это было бы лучше. В нашем случае это был не вариант (JNLP поставляется с сторонним программным пакетом), поэтому я загрузил JNLP, отредактировал его, и теперь мы запускаем приложение, дважды щелкнув файл .jnlp (или запустив 1.6 javaws.exe на нем).

Здесь some documentation on the JNLP file format, если вам нужна дополнительная информация.

+0

Отлично! Работал для меня. – ShyPerson

0

В моем случае, следующий работал, чтобы решить эту проблему -

мне нужно добавить «*», что означает, что последние 1,6 JRE найти на машину заберут. По какой-то причине просто использование «1.6» для меня не сработало, а 1.7 продолжал блокировать запуск.

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

  • Нет связанных вопросов^_^