如何使用jnlp为32位和64位正确部署桌面JavaFx 2.0应用程序?

时间:2011-11-18 00:18:34

标签: deployment 32bit-64bit jnlp javafx-2

我有一个jnlp文件用于部署我的javafx 2.0应用程序,但是,如何确保用户拥有正确的javafx运行时(32位或64位,具体取决于计算机上的jvm),如果没有,请下载它并运行该应用程序。

假设用户当前没有安装javafx运行时,我主要面对的是64位机器,32位,64位或两种JRE的问题:

1)Javafx swing部署指南提到使用<jfx:javafx-runtime version />标签下载相应的jfx运行时,但低于1.7的JRE不理解此标记/命名空间。

2)如果在64位计算机上安装了32位jre,那么如何将我的应用程序安装到“Program Files(x86)”文件夹,下载并使用32位javafx运行时。

3)如果在64位计算机上安装了64位jre,那么如何将我的应用程序安装到“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 个答案:

答案 0 :(得分:1)

你错过了jnlp中的xmlns:jfx名称空间。它应该以

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

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

jnlp response