如何确保最新版本的JAR与JNLP应用程序一起使用?

时间:2011-12-05 07:47:44

标签: java jnlp java-web-start

我有一个桌面应用程序,我想使用JAVA Web start启动该应用程序。我第一次使用浏览器启动时工作正常,它将下载资源中定义的所有jar。下次我使用JNLP或浏览器运行它时,它不会下载任何jar。使用的罐子来自缓存或其他地方,我不知道......

我希望每次启动我的应用程序时都会下载资源中定义的所有jar

我的jnlp文件包含:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
    <information>
        <title>example</title>
        <vendor>example</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.5+"
              href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="application.jar" main="true" />
        <jar href="lib/app.jar" />             
    </resources>
    <application-desc main-class="com.application.entry">
  </application-desc>
   <update check="background"/>
   <security>
     <all-permissions/>
   </security>
</jnlp>

4 个答案:

答案 0 :(得分:5)

如果有新版本,它将下载jar。如果没有,则根本不需要下载文件。

答案 1 :(得分:1)

尽管Andrew Thompson指出的行为是您可以预期的,但您可以像这样更改更新策略:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
    <information>
        <title>example</title>
        <vendor>example</vendor>
    </information>
    <resources>
        <!-- Application Resources -->
        <j2se version="1.5+"
              href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="application.jar" main="true" />
        <jar href="lib/app.jar" />             
    </resources>
    <application-desc main-class="com.application.entry">
  </application-desc>
   <update check="always" policy="always"/>
   <security>
     <all-permissions/>
   </security>
</jnlp>

答案 2 :(得分:1)

我们可以设置三种不同的检查配置:

  • update check="timeout" policy="always"
    默认
  • update check="always" policy="always&#34;
    无论资源如何变化,都要下载资源,例如:jar文件
  • update check="background " policy="always"
    将启用已在缓存中下载的当前客户端打开,如果资源有任何更改,它将在后台开始下载。下次打开应用程序时,将从新版本开始。

`

答案 3 :(得分:0)

是的,这是解决问题的重点。

解决方案很简单,您可以进行以下更改:

update check="always" policy="always

它不能进入​​任何集合