0

2 つのメイン クラスを含む jar ファイルがあります。必要なものに応じて、どちらかを実行できます。このアプリケーションを webstart 経由で実行するために、2 つの JNLP ファイルを作成し、それぞれが 2 つのメイン クラスのいずれかを参照します。

メイン クラスの 1 つだけが両方のファイルから開始されているのを見るのは気が遠くなるようなものです。私が知っているのは、起動されるクラスは、jar のマニフェストにメインクラスとしてリストされているクラスでもあるということです。ウェブスタートの仕様、ウェブスタートのドキュメントを読み込もうとしましたが、ここでマニフェストに関連するものを見つけることができません。ソース コード (Oracle JDK に付属) を見ようとしたとき、webstart ランチャーに関連するものはまったく見つかりませんでした。

では、webstart はどのようにしてそのメイン クラスを正確に見つけるのでしょうか?

4

2 に答える 2

1

JNLP ファイルには、jar を配置するリソースセクションがあります。

jar の 1 つがmain=trueである必要があります。この jar では、スタンドアローンの jar ファイルのように、MANIFEST.MF でメインクラスを定義します。

于 2014-11-06T10:00:44.163 に答える
0

追加情報を提供するために、ここに私の JNLP ファイルのスニペットを示します。

<resources>
    <jar href="FarmGenerator.jar" main="true"/>
    ...
</resources>
<application-desc main-class="com.amadeus.wh.farmgenerator.MainFrame">
</application-desc>

これは、2 番目の JNLP のスニペットです。

<resources>
    <jar href="FarmGenerator.jar" main="true"/>
    ...
</resources>
<application-desc main-class="com.amadeus.wh.CompliancyChecker.MainFrame">
</application-desc>

これはマニフェスト ファイルのスニペットです。

メインクラス: com.amadeus.wh.farmgenerator.MainFrame

両方の JNLP ファイルから、farmgenerator.MainFrame のみが起動されます。あたかもマニフェストが application-desc 要素をオーバーライドしているかのように。

于 2014-11-17T16:25:36.043 に答える