2011-09-24 153 views
1

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

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开始如何工作? 2)如果在线检查更新,如果可以下载,请检查更新...如果它不能使用旧版本,请使用旧版的 在文件夹中更新 3)如果更新不可变,请使用旧版本。 重复1 2 3

回答

1

嗯,这是一个两个舞伴现在,是不是:

首先,为什么你获得有关你的主类的错误?你的jnlp文件是否有正确的软件包和声明的主类名称?它应该是这样的:

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

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

+0

jpln中有类,我该如何做这些步骤写在我的编辑主题?启动jar(不启动)检查更新如果在线下载文件夹中新的aviable更新,或者如果没有更新启动它。如果离线使用文件夹中较旧的文件夹。 – Strom