Не удается получить параметры апплета с JWS в Windows10
У меня есть Java-апплет. Я пытаюсь открыть его с помощью Java Web Start. Я создал следующий файл JNLP:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://www.test.com/test"
href="http://www.test.com/test/TestJWS.jnlp">
<information>
<title>Test</title>
<vendor>Test</vendor>
</information>
<resources>
<!-- Application Resources -->
<j2se version="1.7+"
href="http://java.sun.com/products/autodl/j2se"/>
<jar href="test.jar"
main="true" />
</resources>
<security>
<all-permissions/>
</security>
<applet-desc
name="test"
main-class="main.testApplet"
width="300"
height="300">
<param name="TestParam" value="12345"/>
</applet-desc>
<update check="background"/>
</jnlp>
Вот мой файл манифеста:
Permissions: all-permissions
Trusted-Library: true
Codebase: *
Когда я пытаюсь открыть его в Windows 8.1 или Windows 7, это не проблема, все работает как положено.
Но когда я пытаюсь открыть его в Windows 10, апплет не может получить параметры, которые определены в файле JNLP. (Я пробовал это с j8u45 и j8u51)
Я пытаюсь получить параметр с помощью этого метода:
String java.applet.Applet.getParameter(String name)
Пример: myTestApp.getParameter("TestParam")
Вот трассировка стека исключения
java.lang.NullPointerException
at test.XApplicationVariables.getParameters(XApplicationVariables.java:527)
at test.MyApplet.init(TestApplet.java:71)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Как я могу исправить эту проблему? есть ли обходной путь?
1 ответ
Проблема вызывает способ, которым JRE обрабатывает параметры.
Предположим, есть параметр "Ip".
JRE читает параметры и строчные буквы с текущей локалью. (В моем случае это был турецкий)
Это изменяет параметр "Ip" на "ıp "
Поэтому, когда я пытался прочитать Ip или ip в моем applacation, он не находит его.