【发布时间】:2013-01-20 12:53:17
【问题描述】:
我正在尝试通过 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 导出 -> jar 文件工具生成它 所以我的应用程序没有启动 在 windows java 上询问 sequrity 问题,我接受它会下载一些 jars 这是跟踪文件的输出
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 jar
但我仍然无法启动我的应用程序
所以我应该用eclipse生成可运行的jar文件,所有的库都打包在jar中。那么这种情况下怎么写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>
【问题讨论】:
-
Privet,查看我的回答并尝试第 1 步。根据 JaNeLa 获得正确的 jnlp 文件后,在应用程序启动失败的位置发布堆栈跟踪。