【问题标题】:what is the difference between offline-allowed and update tag in JNLP fileJNLP文件中允许离线和更新标签有什么区别
【发布时间】:2023-03-16 04:17:01
【问题描述】:

我正在使用 java web start 作为我的应用程序的标准部署技术。我想知道允许离线和更新标签有什么区别。

offline-allowed表示客户端系统断网时应用程序可以运行

<update check="background" policy="prompt-update"> :- 表示在后台检查更新的同时启动应用程序,并询问用户是否要下载更新版本或启动缓存版本。

我对允许离线感到困惑,这是否意味着允许离线检查用户计算机是否连接到部署应用程序以进行更新的服务器,或者它只是检查正常的互联网连接。

如果有人在他们的 jnlp 文件中使用 both 标签会产生什么影响。

总体而言,我希望我的应用程序在后台检查更新[使用桌面快捷方式而不是浏览器链接,我不想每次都使用浏览器访问应用程序] 并在更新可用时询问,但它也应该允许应用程序无论托管 jnlp 文件的服务器是否可用,都将启动。

仅供参考:我的应用程序需要连接到 Internet 以进行其他操作,但我无法保证托管 jnlp 和其他应用程序 jar 文件的服务器的可用性。

如果您有任何建议或问题,请告诉我。

谢谢

【问题讨论】:

    标签: java jakarta-ee jnlp


    【解决方案1】:

    当您第一次启动 JNLP 文件时,它会将应用程序(在 JNLP xml 文件中定义)安装到 JVM(控制面板 -> Java -> 常规 -> 视图)。

    update check="background" 配置允许您将您的版本与服务器同步并在服务器有新版本时安装新版本。如果您没有与服务器连接 - 什么都不会发生。

    如果有人在他们的 jnlp 文件中使用 both 标签会有什么影响。

    第二个会受到影响。

    这是 JNLP 示例:

    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp spec="1.0+" codebase="http://172.20.0.69:8080/DemoMonitoring/web/" href="monitoring_webstart.jnlp">
    <information>
        <title>Demo monitor 172.20.0.69</title>
        <vendor>Demo</vendor>
        <homepage href="http://www.Demo.com"/>
        <description>Demo Monitoring System</description>
        <description kind="short">Demo Monitoring System User Interface.</description>
        <icon href="./images/ne_app_icon_64.png"/>
        <icon kind="splash" href="./images/splash.jpg"/>
        <icon kind="shortcut" href="./images/ne_app_icon_32.png"/>
    
    
        <offline-allowed/>
        <shortcut online="false">
            <desktop/>
            <menu submenu="Prabinas">
                <menu submenu="Product Managing System"/>
            </menu>
        </shortcut>
    
    </information>
    <security>
        <all-permissions/>
    </security>
    
    <resources>
        <!-- Application Resources -->
        <j2se version="1.6+"
              href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="DemoMonitoringPrototype.jar"  main="true" />
        <jar href="lib/log4j-1.2.8.jar" download="eager" />
        <jar href="lib/commons-logging-1.1.1.jar"/>
        <jar href="lib/gson-1.7.1.jar"/>
        <jar href="lib/xpp3_min-1.1.4c.jar"/>
        <jar href="lib/xstream-1.3.1.jar"/>
        <jar href="lib/httpclient-4.1.1.jar"/>
        <jar href="lib/httpcore-4.1.1.jar"/>
        <jar href="lib/DemoMonitorCommon.jar"/>
    
    </resources>
    <application-desc name="Prototype" main-class="com.demo.monitor.root.MainRun" width="500" height="500">           
      </application-desc>
     <update check="background" policy="prompt-update"/> 
    </jnlp> 
    

    【讨论】:

    • 所以如果我同时使用第二个将生效,用户可以通过单击桌面图标来更新应用程序?
    • 是的,创建单个应用程序并测试所有重要配置的好习惯
    • 如果需要,我可以为我的应用程序添加 JNLP 文件
    • 是的,这将非常有帮助。再次感谢您的建议
    • @Geek 我添加了一个示例。顺便说一句,请确保您的 jar 已签名,否则客户端启动将失败
    猜你喜欢
    • 1970-01-01
    • 2011-08-13
    • 2019-11-27
    • 2012-01-30
    • 2023-03-13
    • 2010-12-28
    • 2012-08-15
    • 2012-12-27
    • 1970-01-01
    相关资源
    最近更新 更多