【问题标题】:Java Web Start and Main ClassJava Web Start 和主类
【发布时间】:2011-09-24 18:24:58
【问题描述】:

我做了一个应用程序,我会在开始时自动更新。阅读 stackoverflow 很多人建议 Java web start。 因此,使用 Netbeans,我启用了 Web 启动配置,并且很快就启用了。它生成了 launch.jnpl html 、 jar 文件和 lib 文件夹。 在程序的主体中我插入

DownloadService2 service = (DownloadService2)
ServiceManager.lookup("javax.jnlp.DownloadService2");                        
ResourceSpec spec = new ResourceSpec("http://www.mysite:8080/.*", "1.*", service.JAR);
ResourceSpec results[] = service.getCachedResources(spec);
 results = service.getUpdateAvailableResources(spec);

所以我将 dist 文件夹中的所有文件上传到网络服务器。现在,如果我使用 lunch.jnpl 启动应用程序,它会毫无问题地启动。但是当我使用我的 jar 文件时出现错误:找不到主类“我的类”程序退出。

现在,如果我不使用 DownloadService2,它可以与 Jar 文件一起使用。 所以我的问题是: 我如何使用 Java Web start 来更新我的程序?

例如,如果我发布另一个版本并将其放入代码库 url,如果我使用 jar 文件启动程序,它应该下载新版本。

如果我做错了什么或误解了 Java web start 的工作原理,谁能告诉我?

编辑:我希望程序遵循这一行: 1)如果可能的话,用罐子吃午饭,检查更新......如果它不能离线使用旧的 2)如果在线检查更新如果在文件夹中可以下载更新 3) 如果更新不可用,请使用旧版本。 重复 1 2 3

【问题讨论】:

    标签: java class web main


    【解决方案1】:

    嗯,现在是两个人了,不是吗:

    首先,为什么你的主类出现错误?您的 jnlp 文件是否声明了正确的包和主类的名称?它应该是这样的:

    <application-desc main-class="package1.package2.MyMainClass" />
    

    其次,更新是如何工作的。好吧,一旦有人访问您的 jnlp 文件并从中启动您的 jar 应用程序,该 jar 就会在客户端计算机上本地下载。然后,当他第二次运行它时,jnlp 协议将首先检查 url 以查看 jar 是否已更新。如果是这样,那么它会得到那个新版本,这就是客户端将运行的。如果尚未更新,则之前下载的 jar 将从本地计算机运行。

    【讨论】:

    • jpln 中有类,我该如何在我的编辑主题中写这些步骤?如果在线下载文件夹中的新可用更新,或者如果没有更新启动它,则启动 jar(不启动)检查更新。如果离线使用文件夹中较旧的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多