4

我做了以下步骤:

  • 清除 Java 缓存。
  • 启动小程序(通过javaws <url of jnlp file>
  • 观察到 java 缓存中的新条目。假设这个 jnlp 文件有版本6.43并且-Xss4mjava-vm-args.
  • 然后,我将版本更改为6.44,并再次运行。java-vm-args-Xss5mjavaws
  • 通过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 启动应用程序。有没有办法解决这个问题?

4

0 回答 0