0

我有一个包含两个主要类的 jar 文件。根据我的需要,我可以运行其中一个。为了让这个应用程序通过 webstart 运行,我创建了两个 JNLP 文件,每个文件都引用两个主要类之一。

令人难以置信的是,只有一个主要类是从两个文件中启动的!我所知道的是,被启动的类也是 jar 清单中列为主类的类。我尝试阅读 webstart 规范和 webstart 文档,但在此处找不到与清单相关的任何内容。当我试图查看源代码(随 Oracle JDK 提供)时,我根本没有看到与 webstart 启动器有太多关系。

那么webstart究竟是如何找到它的主类的呢?

4

2 回答 2

1

在 JNLP 文件中,您有一个放置 jar的资源部分。

你们中的一个罐子应该是main=true。在这个 jar 中,您在 MANIFEST.MF 中定义主类,就像一个独立的 jar 文件一样。

于 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>

这是第二个 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 回答