我有一个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)
如何解决此问题?有解决方法吗?
答案 0 :(得分:0)
问题导致JRE处理参数的方式。
假设有一个参数“Ip”
JRE读取参数并使用当前语言环境将其小写。 (在我看来是土耳其语)
这会将“Ip”参数更改为“ıp”
因此,当我尝试在我的applacation中读取Ip或ip时,它找不到它。