即使有update =“always”policy =“always”,JNLP也不会更新

时间:2013-11-26 14:49:08

标签: java java-web-start jnlp

我的JNLP文件是:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="http://fuuu.sk/" href="launch.jnlp" spec="1.0+">
<information>
    <title>PocketBrain</title>
    <vendor>zatokar</vendor>
    <homepage href="www.fuuu.sk"/>
    <description>PocketBrain</description>
    <description kind="short">PocketBrain</description>
</information>
<update check="always" policy="always"/>
<security>
  <all-permissions/>
</security>
<resources>
    <j2se version="1.7+"/>
    <jar href="PocketBrain.jar" main="true"/>
<jar href="lib/sqlite-jdbc-3.7.2.jar"/>
<jar href="lib/eclipselink.jar"/>
<jar href="lib/javax.persistence_2.1.0.v201304241213.jar"/>
<jar href="lib/jcalendar-1.4.jar"/>
<extension href="jnlpcomponent1.jnlp"/>
</resources>
<application-desc main-class="model.BrainInPocket">
</application-desc>
</jnlp>

正如你所看到的那样有update =“always policy =”always“,因为它是用Java web start帮助编写的。但它没有帮助它显示仍然是相同的错误,即使它被删除(我是确定它应该显示不同的错误。)帮助只是删除java控制面板中的缓存文件。为什么它不自动更新?因为测试使用IE 7,因为在其他浏览器中它自动下载jnlp文件。

1 个答案:

答案 0 :(得分:2)

1)。 更改(意味着切换)&lt; update&gt;的顺序和&lt; security&gt;标签。 要分析您的JNLP文件,请使用JaNeLa

2)。 使用每个构建/部署在applet标记中对您的jar进行版本控制。这将迫使重新加载。

<jar href="lib/sqlite-jdbc-3.7.2.jar"/> -> <jar href="lib/sqlite-jdbc-3.7.3.jar"/>

我知道外部库很麻烦......

3)。 您也可以try the version tag

将您的jar文件重命名为:sqlite-jdbc__V3.7.2.jar

<jar href="lib/sqlite-jdbc.jar" version="3.7.2"/>