2011-11-18 50 views
5

我有一个用于部署我的javafx 2.0应用程序的jnlp文件,但是,如何确保用户具有正确的javafx运行时(32位或64位,取决于计算机上存在的jvm),如果没有,请下载并运行应用程序。如何使用jnlp for 32位和64位正确部署桌面JavaFx 2.0应用程序?

假设用户当前没有安装一个JavaFX运行时,即我面对大多与在64位计算机与32位,64位或两个JRE的问题是:

1) Javafx swing部署指南提到使用<jfx:javafx-runtime version />标签下载相应的jfx运行时,但JRE低于1.7并不理解此标签/名称空间。 2)如果在64位机器上安装了32位jre,那么如何将我的应用程序安装到“Program Files(x86)”文件夹,下载并使用32位javafx运行时。 3)如果64位jre安装在64位机器上,那么如何将我的应用程序安装到“Program Files”文件夹,下载并使用64位javafx运行时。

这里是我的JNLP文件的外观目前:

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" codebase="file:///C%3A/Program%20Files/HP/Pulse/PulseLite"href="iMonLauncher.jnlp"> 
    <information>  
     <title>iMonLauncher</title> 
     <vendor>Administrator</vendor> 
     <homepage href="file:///C%3A/Program%20Files/HP/Pulse/PulseLite"/>  
     <description>iMonLauncher</description> 
     <offline-allowed/>  
    </information> 
    <security>  
     <all-permissions/> 
    </security> 
    <resources> 
     <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/> 
     <jar href="iMon.jar" size="428419"/>   
     <jar href="lib/ibase-core.jar" size="197029"/> 
     <jar href="lib/ibase-fx.jar" size="210175"/> 
     <jar href="lib/imonDB.jar" main="true" size="156616"/> 
     <jar href="lib/imon-service.jar" main="true" size="73190"/> 
     </resources> 
    <application-desc name="iMon" main-class="imon.Main" > 
    </application-desc> 
    <update check="always"/> 

代码库会自动更改,指向依赖于架构的正确程序文件的文件夹。

在此先感谢!

回答

1

您错过了您的jnlp中的xmlns:jfx命名空间。它应该从

<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="iMonLauncher.jnlp"> 

一旦用户安装了常规的java并单击这样的jnlp文件,他将会看到FX的自动下载消息。它会找出使用哪个java,下载并安装approprivate javafx版本。

jnlp response

+0

我用了'的xmlns:jfx'命名空间在我的JNLP,但我认为这个命名空间是JRE 1.7+,而不是在JRE的早期版本中唯一认可的。所以,如果用户拥有1.6+以上的版本,这个命名空间将被完全忽略,而不会在系统上安装javafx,从而导致应用程序无法启动。 – Saurabh

相关问题