JavaFX離線部署和運行,客戶端瀏覽器可以自動檢測並下載安裝指定服務器的JRE

 此文主要說明如何在離線的情況下使用JavaFX程序,以及在沒有安裝JRE的客戶端,如何自動下載並安裝指定服務器上的JRE。


(此文是在NetBeans開發工具下進行的,並且由IDE自動生成部署時所需文件)

 

1、安裝JRE(最低需要JRE6 Update10以上)。注意,不同版本的JFX也對應不同的JRE,在離線使用的情況下。比如JFX1.2的離線包在JRE6 12(及以前)上就有問題,JFX1.3最好對應最新的JRE(目前(寫這篇文章的時候)比較穩定的是:jre-6u24-windows-i586.exe,並且帶有javafx的jar包)。

1、IDE自動生成的/dist 文件夾及內容:

拷貝:*.html ,  *.jar , _browser.jnlp 以及其他類庫、資源文件等,這裏就有項目中添加第三方jar包,lib文件夾中。

將拷貝的文件放到你所要部署的服務器上或者項目中。

 

2、下載相關文件到本地。
      http://java.com/js/deployJava.js
      http://dl.javafx.com/1.3/dtfx.js 

      http://dl.javafx.com/1.3/javafx-rt.jnlp
      http://dl.javafx.com/1.3/java-coffee-cup-23x20.png
      http://dl.javafx.com/1.3/javafx-loading-25x25.gif

      http://dl.javafx.com/1.3/javafx-loading-100x100.gif

      http://dl.javafx.com/1.3/webstart.png

      下載JFX運行時所需的jar包:即javafx-rt.jnlp文件中的所有JAR包,下載地址就是:http://dl.javafx.com/1.3/  +jar名

       下載jre文件:到oracle官方下載 jre-6u24-windows-i586.exe或最新的

 

deployJava.js文件用於檢測JRE的安裝和版本,如果未檢測到JRE會自動提示並要求安裝最新的JRE版本;此文件還需網頁允許運行Web Start程序。

dtfx.js文件用於部署JavaFX程序在網頁上,並允許網頁運行JavaFX程序。

javafx-rt.jnlp就是指定JFX運行時所需的jar包。(操作系統不同,需要的Jar也不同,所以需要下載很多jar到本地)

        jre-6u24-windows-i586.exe 就是供客戶端下載的指定服務器上的jre

 

3、修改*.html

      <script src="http://dl.javafx.com/1.3/dtfx.js"></script>

加粗部分修改爲:相應的服務器地址

 

4、修改*_browser.jnlp,原文如下:

 

<?xml version="1.0" encoding="UTF-8"?>

<jnlp spec="1.0+" codebase="http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/D%3A/NetBeansProjects/Calculator/dist/" href="Calculator_browser.jnlp">

    <information>

        <title>Calculator</title>

        <vendor>Administrator</vendor>

        <homepage href="http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/D%3A/NetBeansProjects/Calculator/dist/"/>

        <description>Calculator</description>

        <icon kind="splash" href="http://dl.javafx.com/1.3/splash.png"/>

        <offline-allowed/>

    </information>

    <resources>

        <j2se version="1.5+"/>

        <extension name="JavaFX Runtime" href="http://dl.javafx.com/1.3/javafx-rt.jnlp"/>

        <jar href="Calculator.jar" main="true" size="5485242"/>

        <jar href="lib/mysql-connector-java-5.1.6-bin.jar" size="690484"/>

        <jar href="lib/ezmorph-1.0.6.jar" size="86487"/>

        <jar href="lib/json-2.4.jar" size="159123"/>

        <jar href="lib/rt.jar" size="49839959"/>

    </resources>

    <applet-desc name="Calculator" main-class="com.sun.javafx.runtime.adapter.Applet" progress-class="com.javafx.progressbar.ProgressManager" width="200" height="200">

        <param name="MainJavaFXScript" value="Main"/>

    </applet-desc>

    <update check="always"/>

</jnlp>

修改後,如下:

 

<?xml version="1.0" encoding="UTF-8"?>

<jnlp spec="1.0+">

    <information>

        <title>Calculator</title>

        <vendor>Administrator</vendor>

        <description>Calculator</description>

        <offline-allowed/>

    </information>

    <resources>

        <j2se version="1.5+"/>

        <extension name="JavaFX Runtime" href="http://指定服務器/javafx-rt.jnlp"/>

        <jar href="Calculator.jar" main="true" size="5485242"/>

        <jar href="lib/mysql-connector-java-5.1.6-bin.jar" size="690484"/>

        <jar href="lib/ezmorph-1.0.6.jar" size="86487"/>

        <jar href="lib/json-2.4.jar" size="159123"/>

        <jar href="lib/rt.jar" size="49839959"/>

    </resources>

    <applet-desc name="Calculator" main-class="com.sun.javafx.runtime.adapter.Applet" progress-class="com.javafx.progressbar.ProgressManager" width="200" height="200">

        <param name="MainJavaFXScript" value="Main"/>

    </applet-desc>

    <update check="always"/>

</jnlp>

 

指定服務器 修改爲你的相應的URL即可

 

5、 修改dtfx.js

http://dl.javafx.com/1.3/   修改爲: 指定的服務器地址

'a href="http://java.com/"'+tagEndChar;    修改爲: 'a href="http://指定的服務器地址/jre-6u24-windows-i586.exe">';

http://java.com/js/deployJava.js   修改爲:http://指定的服務器地址/deployJava.js

http://java.sun.com/webapps/getjava/BrowserRedirect?host=java.com   修改爲: http://指定的服務器地址/jre-6u24-windows-i586.exe

 

6、修改deployJava.js

http://java.sun.com/webapps/getjava/BrowserRedirect?host=java.com   修改爲: http://指定的服務器地址/jre-6u24-windows-i586.exe

http://java.sun.com/products/jfc/tsc/articles/swing2d/webstart.png 修改爲:  http://指定的服務器地址/webstart.png

id="deployJavaPlugin" width="0" height="0"   修改爲:id="deployJavaPlugin" codebase="http://指定的服務器地址/jre-6u24-windows-i586.exe#Version=6,0,240,7"  width="0" height="0"

 

7、修改javafx-rt.jnlp

http://dl.javafx.com/1.3/   修改爲  jar放的位置 如:http://指定的服務器地址/lib/

 

8、離線運行JavaFX程序(web形式)

     通過以上幾步的操作,就可以完全脫離互聯網而運行JavaFX程序了,並且客戶端瀏覽器自動下載安裝指定服務器上jre。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章