jnlp无法启动swt应用程序

时间:2013-02-05 14:45:38

标签: java eclipse swt jnlp

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

1 个答案:

答案 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小程序应该部署的方式。

JNLP File Syntax

Deploying a Java Web Start Application