指定代码库是合法的:
<jnlp spec="6.0+"
codebase="file:/c:/MyApp/"
href="myapp.jnlp">
使用JWS导入时,它会创建桌面快捷方式,并且应用程序正在运行。
但是,有一点与远程代码库有很大不同。当我在应用程序运行时更新这些文件时,它基本上停止了ClassNotFoundExceptions
的工作。似乎JWS没有复制jar,或者在更新时立即复制它们,因为它们会以某种方式覆盖正在运行的进程使用的jar。
如何让它像文件是远程一样工作?也就是说,将文件复制到缓存中,并仅在启动时检查更新。
编辑:我还没有办法做到这一点,并决定购买自制软件。一路走来,我发现了几个错误,并在http://squirrel.pl/blog/2011/11/24/java-web-start-bugs-offline-edition/总结了一些观察结果。将它发布在这里以防它可能对某人有用。
答案 0 :(得分:0)
为了使您的应用程序可自动更新,您应使用<update>
标记。
<update check="always" policy="always"/>
如果您愿意,您的应用程序可能会在离线状态下运行<offline-allowed/>
另外,为了提供所有安全权限,您需要添加<security>
标记。
将以下标记添加到JNLP文件中。
<information>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<update check="always" policy="always"/>
<resources>
<jar href="your-signed.jar" main="false" download="eager"/>
</resources>
答案 1 :(得分:-4)
在我们的应用程序中,代码库是:
<jnlp codebase="http://xxxx.xxx.xxx/jars">
并且,您的jar文件应放在your_webapp_root_directory / jars中。为了进行测试,您可以在浏览器中输入一个网址:http://xxxx.xxx.xxx/jars/xxxx.jar,如果您可以下载xxxx.jar文件,则可以使用。