JNLP文件的本地替代?

Ric*_*ket 9 java jnlp jogl

尽我所能,我无法在本地运行JNLP文件(通过双击).这似乎是一个定位jar文件的问题,即使我相对于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" />
Run Code Online (Sandbox Code Playgroud)

我希望找到一些可以做同样事情的东西.如果没有,我可以手动(或使用Ant)抓取JOGL jar文件,这不是什么大问题; 这只是JNLP为我做的事情之一,我真的很想念.


什么是JNLP文件的最佳替代品,让我在本地使用(即双击运行)?有什么优雅的东西,或者我只需要为Linux编写一个shell脚本,一个Windows的批处理文件,并让Ant检测并下载相应的JOGL jar?

小智 21

我已经使用这样的.jnlp文件在本地启动Java Web Start软件

  1. 像这样指定代码库: <jnlp spec="1.0+" codebase="file://localhost/X:/path/to/jnlp/" href="software.jnlp">

  2. 列出具有相对路径的资源: <resources> <jar href="lib/software.jar" main="true" /> <jar href="lib/softwareLibrary.jar" main="true" /> ... </resources>

  3. 最后告诉Web Start在哪里可以找到标有main="true"以下内容的jar内的软件入口点:<application-desc main-class="com.example.Main" />

在远程部署时,您唯一需要更改的是codebase参数.

  • 此外,您可以通过省略`codebase`属性在本地启动.它现在是可选的:http://download.oracle.com/javase/6/docs/technotes/guides/javaws/developersguide/syntax.html (4认同)
  • 对我来说,这仅在我将代码库更改为:file:/// X:/ path / to / jnlp /时才起作用(所以,三个正斜杠,然后是驱动器号) (2认同)