Webstart如何确定主类?

时间:2014-11-06 09:52:36

标签: java java-web-start mainclass

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

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

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

2 个答案:

答案 0 :(得分:1)

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

你们其中一个罐子应该是 main = true 。 在这个jar中,您可以像在独立的jar文件中一样在MANIFEST.MF中定义main-class。

答案 1 :(得分: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>

这是清单文件摘要:

Main-Class:com.amadeus.wh.farmgenerator.MainFrame

从两个JNLP文件中,仅启动farmgenerator.MainFrame。好像清单重写了application-desc元素。