我正在尝试通过jnlp运行应用程序我试图在本地测试jnlp文件,然后尝试在某些服务器上部署我的应用程序。 correrspondind平台的所有swt库都是自签名的,并且与jnlp文件位于同一目录中。我的应用程序jmf.jar和jl1.0.1所需的其他jar也在这里。 我将它们称为
<resources>
<java version="1.5" />
<jar href="MyBaran.jar"/>
<nativelib href="jl1.0.1.jar" download="eager"/>
<nativelib href="jmf.jar" download ="eager"/>
</resources>
我的主应用程序jar(MyBaran.jar)具有以下结构
MyBaran.jar
-com
--game
---Main.class
---Game.class
...
---Character.class
-images
--test.jpg
--sound.wav
...
--forrest.mid
-META-INF
--MANIFEST.MF
--...
-.project
-.classpath
我使用eclipse导出生成它 - &gt; jar文件工具 所以我的申请没有开始 在windows java上询问sequrity问题,我接受它下载一些jar 这是跟踪文件的输出
CacheEntry[file:/H:/Program Files/Java/jdk1.7.0_13/bin/swt-win32-windows-x86.jar]: updateAvailable=false,lastModified=Mon Feb 04 17:48:22 GMT+03:00 2013,length=2048373
CacheEntry[file:/H:/Program Files/Java/jdk1.7.0_13/bin/jmf.jar]: updateAvailable=false,lastModified=Tue Feb 05 10:32:17 GMT+03:00 2013,length=1969383
CacheEntry[file:/H:/Program Files/Java/jdk1.7.0_13/bin/MyBaran.jar]: updateAvailable=false,lastModified=Tue Feb 05 13:59:24 GMT+03:00 2013,length=5924842
CacheEntry[file:/H:/Program Files/Java/jdk1.7.0_13/bin/jl1.0.1.jar]: updateAvailable=false,lastModified=Tue Feb 05 10:31:30 GMT+03:00 2013,length=112570
所以它看起来像装载swt罐子 但我仍然无法启动我的应用程序 所以我应该用eclipse生成runnable jar文件,并在jar中打包所有的libs。那么如何在这种情况下编写jnlp文件
这是我当前的jnlp文件
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.5" href="mybaran.jnlp">
<information>
<title>Garbage Collector Game</title>
<vendor>Java Tester</vendor>
<homepage href="" />
<description>Garbage Collector Game</description>
<description>Garbage Collector Game</description>
</information>
<security>
<all-permissions />
</security>
<resources>
<java version="1.5" />
<jar href="MyBaran.jar"/>
<nativelib href="jl1.0.1.jar" download="eager"/>
<nativelib href="jmf.jar" download ="eager"/>
</resources>
<resources os="Windows" arch="x86">
<jar href="swt-win32-windows-x86.jar" />
</resources>
<resources os="Windows" arch="x86_64">
<jar href="swt-win32-windows-x86_64.jar" />
</resources>
<resources os="Windows" arch="amd64">
<jar href="swt-win32-windows-x86_64.jar" />
</resources>
<resources os="Linux" arch="x86_64">
<jar href="swt-gtk-linux-x86_64.jar" />
</resources>
<resources os="Linux" arch="amd64">
<jar href="swt-gtk-linux-x86_64.jar" />
</resources>
<resources os="Linux" arch="x86">
<jar href="swt-gtk-linux-x86.jar" />
</resources>
<resources os="Mac" arch="x86_64">
<jar href="swt-cocoa-mac-x86_64.jar" />
</resources>
<resources os="Mac" arch="amd64">
<jar href="swt-cocoa-mac-x86_64.jar" />
</resources>
<resources os="Mac" arch="x86">
<jar href="swt-cocoa-mac-x86.jar" />
</resources>
<application-desc main-class="com.game.Main"/>
</jnlp>
答案 0 :(得分:1)
1)您可以使用Andrew Thomphson的JaNeLa来验证您的jnlp文件。
2)<java version="1.5" />
可能需要更改为
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
它出现在每个教程中。
3)<nativelib href="jl1.0.1.jar" download="eager"/>
我不确定,但我认为nativelib
适用于C库,请尝试将其更改为jar
download="eager"
是默认值,因此指定
4)“所以我应该使用eclipse生成可运行的jar文件,并将所有lib包装在jar中”
不,这不是jnlp小程序应该部署的方式。