Как правильно развернуть настольное приложение JavaFx 2.0 с помощью jnlp для 32- и 64-разрядных версий?

У меня есть файл jnlp для развертывания моего приложения javafx 2.0, однако, как мне убедиться, что у пользователей есть правильная среда выполнения javafx (32 или 64 бит в зависимости от jvm, присутствующего на машине), а если нет, загрузите его и запустите применение.

Предполагая, что у пользователя в настоящее время не установлена ​​среда выполнения javafx, проблемы, с которыми я сталкиваюсь в основном на 64-битной машине с 32-битной, 64-битной или обеими JRE, следующие:

1) В руководстве по развертыванию Javafx Swing упоминается использование тега <jfx:javafx-runtime version /> для загрузки соответствующей среды выполнения jfx, но JRE ниже 1.7 не понимает этот тег / пространство имен.

2) Если 32-разрядная jre установлена ​​на 64-разрядном компьютере, то как мне установить мое приложение в папку «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"/>

Кодовая база изменяется автоматически, чтобы указать на правильную папку программных файлов в зависимости от архитектуры.

Заранее спасибо !


person Saurabh    schedule 18.11.2011    source источник


Ответы (1)


Вам не хватает пространства имен xmlns: jfx в файле jnlp. Он должен начинаться с

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

Как только пользователь установит обычную java и щелкнет такой файл jnlp, ему будет представлено сообщение об автоматической загрузке FX. Он узнает, какая java используется, скачает и установит подходящую версию javafx.

jnlp response

person Sergey Grinev    schedule 23.11.2011
comment
Я использовал пространство имен xmlns:jfx в моем jnlp, но я думаю, что это пространство имен распознается только в jre 1.7+, а не в предыдущих версиях jre. Итак, если у пользователя jre 1.6+, это пространство имен полностью игнорируется, без установки javafx в системе, что приводит к тому, что приложение не запускается. - person Saurabh; 25.11.2011