无法在Windows10中使用JWS获取applet参数

时间:2015-07-20 15:53:39

标签: java applet java-web-start windows-10 appletviewer

我有一个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中打开它时, applet无法获取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 个答案:

答案 0 :(得分:0)

问题导致JRE处理参数的方式。
假设有一个参数“Ip” JRE读取参数并使用当前语言环境将其小写。 (在我看来是土耳其语)
这会将“Ip”参数更改为“ıp”
因此,当我尝试在我的applacation中读取Ip或ip时,它找不到它。