javafx项目本地发布的改造

  javafx项目启动慢的感觉,是所有刚刚接触javafx的人的共同感觉。这是真的吗?
    首先,这种感觉是真实的,javafx项目确实启动的时候会比传统的web页面慢,就像flash一样会有延迟。
    其次,这种感觉被其他原因夸大了。为何这么讲我们来分析一下,就清楚了。
    先暂不论javafx官网的慢是怎么回事,且看netbeans-6.5-javafx建造javafx项目的情况。缺省建造javafx项目会生成相关文件,包括html jnlp _browser.jnlp文件等
打开html文件
<html>
<head>
<title>JavaFXApplication5</title>
</head>
<body>
<h1>JavaFXApplication5</h1>
<script src="http://dl.javafx.com/dtfx.js"></script>
<script>
    javafx(
        {
              archive: "JavaFXApplication5.jar",
              draggable: true,
              width: 200,
              height: 200,
              code: "javafxapplication5.Main",
              name: "JavaFXApplication5"
        }
    );
</script>
</body>
</html>

其中有代码
<script src="http://dl.javafx.com/dtfx.js"></script>

在jnlp文件
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/F%3A/NetBeansApp/JavaFXApplication5/dist/" href="JavaFXApplication5.jnlp">
    <information>
        <title>JavaFXApplication5</title>
        <vendor>xxxtqn</vendor>
        <homepage href="http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/F%3A/NetBeansApp/JavaFXApplication5/dist/"/>
        <description>JavaFXApplication5</description>
        <offline-allowed/>
        <shortcut>
            <desktop/>
        </shortcut>
    </information>
    <resources>
        <j2se version="1.5+"/>
        <extension name="JavaFX Runtime" href="http://dl.javafx.com/javafx-rt.jnlp"/>
        <jar href="JavaFXApplication5.jar" main="true"/>
    </resources>
    <application-desc main-class="javafxapplication5.Main"/>
</jnlp>

也可以发现以下代码
<extension name="JavaFX Runtime" href="http://dl.javafx.com/javafx-rt.jnlp"/>

大家可以知道为何sun官网上的javafx例子这么慢了吧。你需要大量到sun等相关网站上下载jar后,你的应用才能动起来。不明白sdk里面为何没有这些文件,怪哉。

    如果是这样的话,岂不在不联互联网的情况下就无法使用javafx了吗?好,我们现在就来解决这个问题。
    先来看看java控制面板,找出java中缓存的下载文件 可以发现许多下载的资源,因为数字签名等原因,如果你直接到链接位置下载的话可能不成功,可以到 http://download.java.net/javafx这里找到你需要的文件。主要是 http://download.java.net/javafx/pack200/下面的几个,下载到项目本地,至于html下的几个js文件,可以下载到本地,然后修改源代码。如下
<script src="js/dtfx.js"></script>


修改jnlp如下
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://localhost:8080/YouApp/" href="YcJavaFX.jnlp">
    <information>
        <title>YcJavaFX</title>
        <vendor>xxxtqn</vendor>
        <homepage href="http://localhost:8080/YouApp/"/>
        <description>YcJavaFX</description>
        <offline-allowed/>
        <shortcut>
            <desktop/>
        </shortcut>
    </information>
    <resources>
        <j2se version="1.5+"/>
        <!--extension name="JavaFX Runtime" href="http://dl.javafx.com/javafx-rt.jnlp"/-->
        <jar href="lib/javafx-rt__V1.0.0.jar" />
        <jar href="lib/jmc__V1.0.0.jar" />
        <jar href="lib/jogl__V1.1.1.jar" />
        <jar href="YouJavaFX.jar" main="true"/>
    </resources>
    <application-desc main-class="youjavafx.Main"/>
</jnlp>

经过这样修改以后,就算sun倒闭了也不怕了。
有问题请到腾讯60797960交流。

你可能感兴趣的:(windows,互联网,mobile,mobile,sun,JavaFX)