1

4 - 5 個の外部 jar (lib) への参照を持つアプリケーションがあります。しかし、netbeans でアプリケーションを実行すると、netbeans は最初に jar ファイルをロードし、その後アプリケーション シーンが表示されます。また、スプラッシュ画面にも javafx プリローダーを使用しようとしています。ただし、jar ファイルのロード後にプリローダー シーンもロードされます。しかし、プリローダー シーンが表示されている間に jar をロードしたいです。つまり、スプラッシュ スクリーンへの進行中に 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 のメイン プロジェクトのプリローダーとして構成した別のプリローダー プロジェクトを使用しました。

4

1 に答える 1

0

プリローダーを使用したアプリケーションのパッケージ化に関するドキュメントに従ってください。

生成された 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"/>

download="progress"Preloader jar のいくつかの重要なタグに注意しpreloader-classてくださいupdate check="background"

download=lazy必要に応じて、依存する jar に設定できる値もあります ( jnlp 仕様を参照)。プリローダーがある場合、遅延ダウンロードは実際には必要ないかもしれませんが、次のように定義されています。

これは、アプリケーションを起動する前にリソースをクライアント システムにダウンロードする必要がないことを意味します。

更新チェックがオンになり、遅延ダウンロードが使用されると、開発中にアプリケーションを正確にデバッグすることがかなり難しくなる可能性があることに注意してください。これは、実行時に、アプリが最新バージョンのコードではなく、キャッシュされたバージョンのコードを使用する可能性があるためです。したがって、これらの種類のスイッチは、最終的な展開にのみ使用するのが最適です.

また、JavaFX デプロイメント ガイドの「パフォーマンスのヒント」セクションのスレッドもお読みください。

于 2013-03-19T10:31:48.997 に答える