我做了以下步骤:
- 清除 Java 缓存。
- 启动小程序(通过
javaws <url of jnlp file>
) - 观察到 java 缓存中的新条目。假设这个 jnlp 文件有版本
6.43
并且-Xss4m
在java-vm-args
. - 然后,我将版本更改为
6.44
,并再次运行。java-vm-args
-Xss5m
javaws
- 通过
wireshark
,我观察到确实下载了 jnlp 文件。但是当应用程序启动时,-Xss
设置仍然显示 4mb。任何次数的重试都不能解决问题——只有完全清除缓存才能强制 JavaWS 接受新版本。
我在 XUbuntu 12.04 64 位上使用 JDK 1.7.0_45。
这是完整的 jnlp 文件:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="7.0+" codebase="http://192.168.0.47/parrot/" href="http://192.168.0.47/parrot//jnlp.php" version="6.44">
<information>
<title>Parrot</title>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.7+" href="http://java.sun.com/products/autodl/j2se"
java-vm-args="-Xss5m" />
<jar href="http://192.168.0.47/parrot//Parrot.jar" main="true" />
<jar href="http://192.168.0.47/parrot//Splash.jar" download="progress" />
<property name="jnlp.packEnabled" value="true" />
</resources>
<application-desc name="Parrot"
main-class="launch.Jnlp"
progress-class="parrot.splash.Splash" />
<update check="always" policy="always" />
</jnlp>
如您所见,update
设置为always
.
虽然我(作为开发人员)在清除缓存方面没有问题,但我的应用程序的用户肯定并不总是那么聪明,因此他们注定会使用错误的 jvm args 启动应用程序。有没有办法解决这个问题?