Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Webstart间歇JAR未更新_Java_Jar_Java Web Start_Jnlp - Fatal编程技术网

Java Webstart间歇JAR未更新

Java Webstart间歇JAR未更新,java,jar,java-web-start,jnlp,Java,Jar,Java Web Start,Jnlp,我们使用JavaWebStart在内部网上部署java应用程序。应用程序会收到频繁的更新。在我们更新了Web服务器上的JARs/WAR(时间戳已更改)之后,用户偶尔会从其桌面图标启动应用程序,Java Webstart将启动旧版本而不是下载新版本 这里是我们的JNLP的粘贴,正如您所看到的,offline allowed处于启用状态,但始终更新检查和策略。此外,下载标志是急切的。据我所知,这些选项应该总是导致根据服务器上的时间戳检查缓存并下载JAR文件 我开始对Webstart感到失望了!有人见

我们使用JavaWebStart在内部网上部署java应用程序。应用程序会收到频繁的更新。在我们更新了Web服务器上的JARs/WAR(时间戳已更改)之后,用户偶尔会从其桌面图标启动应用程序,Java Webstart将启动旧版本而不是下载新版本

这里是我们的JNLP的粘贴,正如您所看到的,offline allowed处于启用状态,但始终更新检查和策略。此外,下载标志是急切的。据我所知,这些选项应该总是导致根据服务器上的时间戳检查缓存并下载JAR文件

我开始对Webstart感到失望了!有人见过类似的问题吗?有什么解决办法吗?我已经厌倦了每三次或五次更新就让人们手动清理webstart缓存

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN" "http://java.sun.com/dtd/JNLP-6.0.dtd">
<jnlp spec="1.0+" codebase="$$codebase" href="$$name">
  <information>
    <title>TITLE</title>

    <vendor>VENDOR</vendor>

    <description>Our Utility Application</description>

    <description kind="short">Our Utility Application PRD</description>
    <icon href="images/util_icon.png" height="64" width="64"/>
    <offline-allowed/>
    <shortcut online="true">
      <desktop />
      <menu submenu="Utility Apps"/>
    </shortcut>
  </information>

  <security>
     <all-permissions />
  </security>

  <update check="always" policy="always" />

  <resources>
    <!-- requires 1.6+ -->
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" java-vm-args="-ea" initial-heap-size="128m" max-heap-size="512m" />

    <!-- application code, download jar before we start. -->
    <jar href="OurUpdatedJarName.jar" main="true" download="eager" />

    <property name="configfile" value="updatedJarName.config" />
  </resources>

  <application-desc main-class="main.Client">
    <argument>-D</argument> 
  </application-desc>
</jnlp>

标题
小贩
我们的实用程序应用程序
我们的公用事业应用
-D

我们已经在十几个国家/地区发布了java web start应用程序,当我们发现该应用程序没有正确更新时,是因为县网配置不正确,或者用户计算机(主要是代理)的网络设置不正确。在我们位于西班牙的中央办公厅,java web start始终工作正常

假设客户机JRE是最新的,您可以按照本文的建议和文档中的描述尝试

我遇到了与您相同的问题,并通过执行以下操作解决了它:

  • 改变


    您可能已经解决了这个问题-但是jnlp spec=“1.0+”-只有在jnlp spec 6.0+之后才支持该元素。这可能是您的更新失败的原因之一。

    可能与此帖子有关,

    此问题是由
    允许脱机的标签引起的


    如果指定了offline allowed,JavaWebStart还将检查更新是否可用。但是,如果应用程序已经下载,检查将在几秒钟后超时,在这种情况下,将启动缓存的应用程序。如果服务器连接速度相当快,通常会运行最新版本的应用程序,但不能保证运行最新版本的应用程序。但是,应用程序可以脱机运行。

    我一直在使用java webstart nextx.jar克隆。我将不更新JAR的问题追溯到URLConnection.getLastUpdated()方法的使用。由于它使用HEAD方法获取文件名的lastUpdated,这就是为什么有时由于缓存getLastUpdated()而无法下载的原因。我们决定使用自己的方法刷新应用程序,因为webstart有缺陷。

    我遇到这个问题,只是因为我没有让应用程序打开足够的时间来完成更新


    如果您在JNLP中有以下选项:update check=“background”,请在关闭应用程序之前等待一段时间,以便允许更新(在后台运行)完成。

    您好,Telcontar,是的,但是如果没有配置更改,这将间歇工作。。因此,除非与代理缓存有关,否则不太可能出现网络问题。但是,当删除webstart缓存时,它不会解决问题。@trashgod,你会注意到我已经在代码中找到了。是的,但问题的间歇性性质并不排除Telcontar的假设。我不禁想知道“超时”甚至“后台”是否会允许更新成功。我还记得在切换到新证书时必须触摸.jnlp文件本身__V{version}.jar并使用JWSVersionEnabled标志?