有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个桌面应用程序,我想使用JavaWebStart启动该应用程序。当我第一次使用浏览器启动它时,它工作正常,它将下载参考资料中定义的所有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) 个答案

  1. # 1 楼答案

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

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

    update check="always" policy="always
    

    而且它不能被设置成任何东西

  2. # 2 楼答案

    尽管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>
    
  3. # 3 楼答案

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

    • update check="timeout" policy="always"
      违约
    • update check="always" policy="always
      始终下载资源,而不考虑资源中的任何更改,例如:jar文件
    • update check="background " policy="always"
      将启用已在缓存中下载的当前客户端打开,如果资源有任何更改,它将在后台开始下载。下次打开应用程序时,它将以新版本开始

    `

  4. # 4 楼答案

    如果有JAR的新版本,它将下载JAR。如果没有,就真的不需要下载文件了