我有一个应用程序,它引用了4 - 5个外部jar(lib)。但是当我在netbeans上运行我的应用程序时,netbeans首先加载jar文件,然后出现我的应用程序场景。我正在尝试使用javafx预加载器以及启动画面。但是加载jar文件后也会加载预加载器场景。 但我希望在我的预加载器场景中显示加载罐子,即我希望将罐子加载到我的启动画面,然后我的主应用程序场景应该开始。请帮忙
我的JNLP文件
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="Black.jnlp">
<information>
<title>Black</title>
<vendor>RATTAN</vendor>
<description>Sample JavaFX 2.0 application.</description>
<offline-allowed/>
</information>
<resources os="Windows">
<jfx:javafx-runtime version="2.0+" href="http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp"/>
</resources>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="Black.jar" size="2407915" download="eager" />
<jar href="lib/commons-codec-1.6.jar" size="253494" download="eager" />
<jar href="lib/commons-io-1.3.2.jar" size="95657" download="eager" />
<jar href="lib/commons-lang-2.0.jar" size="179419" download="eager" />
<jar href="lib/newlink.jar" size="6161" download="eager" />
<jar href="lib/scribe-1.3.0.jar" size="74544" download="eager" />
</resources>
<security>
<all-permissions/>
</security>
<applet-desc width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback" name="Black" />
<jfx:javafx-desc width="800" height="600" main-class="test.Test" name="Black" />
<update check="always"/>
</jnlp>
我使用了另一个预加载器项目,我已将其配置为netbeans中主项目的预加载器
答案 0 :(得分:0)
按照Packaging an Application with a Preloader上的文档。
检查生成的jnlp文件,它应包含与此类似的值:
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="lib/FirstPreloader.jar" size="2801" download="progress" />
<jar href="AnimatedCircles.jar" size="13729" download="always" />
</resources>
<applet-desc width="800" height="600"
main-class="com.javafx.main.NoJavaFXFallback" name="AnimatedCircles" />
<jfx:javafx-desc width="800" height="600"
main-class="animatedcircles.AnimatedCircles" name="AnimatedCircles"
preloader-class="firstpreloader.FirstPreloader"/>
<update check="background"/>
请注意预加载器jar上的一些重要标记download="progress"
,preloader-class
和update check="background"
。
如果您愿意,还可以在某些相关的罐子上设置download=lazy
值(请参阅jnlp spec)。如果您有预加载器,可能不需要进行延迟下载,但定义为:
这意味着在启动应用程序之前,不必将资源下载到客户端系统上。
注意一旦打开更新检查并且正在使用延迟下载,在开发期间准确调试应用程序可能非常困难,因为在执行时,应用程序可能使用缓存版本的代码而不是最新版本的代码。所以这些交换机最好只用于最终部署。
另请阅读JavaFX部署指南的Performance Tips部分。