1

我正在尝试通过 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>
4

1 回答 1

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文件,所有的库都打包在jar中”

不,这不是 jnlp 小程序应该部署的方式。

JNLP 文件语法

部署 Java Web Start 应用程序

于 2013-02-05T15:00:44.893 回答