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

问题描述 投票:3回答:4

我有一个桌面应用程序,我想使用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>
java jnlp java-web-start
4个回答
5
投票

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


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>

1
投票

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

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

`


0
投票

是的,这是解决问题的关键。

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

update check="always" policy="always

并且它不能成为任何东西

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.