JNLP文件的本地替代品?
问题内容:
尽我所能,无法使JNLP文件在本地运行(通过双击)。即使我相对于jnlp文件指定了一个jar文件,这似乎也是一个问题。我收到以下错误:
href字段的值无效:helloworld.jar
即使JNLP文件与helloworld.jar位于同一文件夹中,也会发生这种情况。我已经进行了搜索,这是一个始终存在的问题,特别是对于那些想要将应用程序打包在CD上并使用JNLP的人来说。Sun唯一提供的“解决方案”是可以通过命令行指定代码库的功能,但这并没有太大帮助。我不明白为什么他们不假设或不允许代码库为“。”
或“ file://”。-我在jnlp标记的codebase参数(在文件内部)中尝试了此类操作,但没有任何效果。
对我来说,使用JNLP文件非常方便,因为我不必担心平台检测,本机库甚至主要的JOGL jar文件。我只包括这一行,一切都为我完成:
<extension name="JOGL" href="http://download.java.net/media/jogl/builds/archive/jsr-231-2.0-beta10/webstart/jogl-all-awt.jnlp" />
我希望找到可以做同样事情的东西。如果没有,我可以手动(或与Ant一起)获取JOGL
jar文件,这没什么大不了的。JNLP为我做的那些事情之一,我真的会想念的。
我可以在本地使用(即双击运行)来替代JNLP文件的最佳方法是什么?
有没有那么精美的东西?或者我只需要为Linux写一个shell脚本,为Windows写一个批处理文件,让Ant检测并下载合适的JOGL jars?
问题答案:
我已经使用了一个.jnlp文件来本地启动Java Web Start软件。
-
指定代码库,如下所示:
<jnlp spec="1.0+" codebase="file://localhost/X:/path/to/jnlp/" href="software.jnlp">
-
列出具有相对路径的资源:
<resources> <jar href="lib/software.jar" main="true" /> <jar href="lib/softwareLibrary.jar" main="true" /> ... </resources>
-
最后告诉Web Start,它可以在标有的jar中找到软件入口点
main="true"
:<application-desc main-class="com.example.Main" />
远程部署时唯一需要更改的是codebase参数。