Не удается получить параметры апплета с 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, он не находит его.

Другие вопросы по тегам