【问题标题】:Can a .jar file to be exexcuted under Windows have more than one main method?Windows下执行的.jar文件可以有多个main方法吗?
【发布时间】:2014-05-21 06:12:40
【问题描述】:

我们有一个包含许多类(约 100 个)的大项目,其中一些有主要方法。

在 WinXP 环境下构建可运行的 .jar-File 执行失败;我们的想法可能是因为我们的项目中不仅有一个,而且有很多主要方法?!

所以我读了一些关于它的内容,据我所知,一个 .jar 可以包含多个主方法;他们会这样称呼:

 java -classpath myJarFile.jar A
 java -classpath myJarFile.jar B
 java -classpath myJarFile.jar C

其中 A、B 和 C 有自己的主要方法(参见http://www.coderanch.com/t/373658/java/java/Executing-main-methods-jar-file

我的问题是:有多个主要方法会影响在 Windows 上无问题运行吗?

提前致谢!

【问题讨论】:

  • “构建可在 WinXP 环境下执行的可运行 .jar 文件失败。” 失败如何?出现什么错误或意外结果?

标签: java main


【解决方案1】:

您说您正在制作一个 runnable jar 文件,但您的示例 (java -classpath myJarFile.jar A) 并未将其用作 runnable jar;他们只是将它用作罐子。您正在指定要在 java 命令行上运行的类。这应该可以正常工作。

Re runnable jars:runnable jars 的要点是您不必直接使用java 命令启动它们;您只需在文件资源管理器中双击 jar,使其成为快捷方式等的目标,然后使用 jar 的 启动类 自动运行 java 工具(通过文件关联) ,在创建可运行 jar 时使用的清单中指定:

Manifest-Version: 1.0
Main-Class: Startup

在该示例中,Startup 是可运行 jar 的启动类。

您可以使 jar 成为可运行的 jar(例如,选择一个默认类来运行 main 并将其设为启动),并且仍然允许 jar 通过选择另一个类的 java 工具运行。没关系。

【讨论】:

    【解决方案2】:

    不 - main 方法只是程序的入口点。

    【讨论】:

    • manifest 文件中指示了可运行 jar 的哪个。如果你愿意,你仍然可以为每个班级设置一个。
    【解决方案3】:

    用于执行应用程序 Main 方法就像是整个应用程序的门。但是你也可以添加一些其他的类,它们有单独的主方法,但是入口主方法应该是一个。

    【讨论】:

      【解决方案4】:

      不,如果您能够控制程序的调用(而不是例如插件/插件),这不是问题。

      【讨论】:

        【解决方案5】:

        使用多个主要方法会影响在 Windows 上无问题运行吗?

        如果你尝试做java -jar myJarFile.jar,它会。 jar 清单允许您选择指定不超过一个主类。

        如果你想拥有多个主要方法,你只需要使用以下语法

        java -classpath myJarFile.jar  A
        

        【讨论】:

          猜你喜欢
          • 2017-06-20
          • 2018-03-29
          • 2015-01-08
          • 2017-09-20
          • 2017-03-19
          • 1970-01-01
          • 2013-02-16
          • 1970-01-01
          • 2010-12-13
          相关资源
          最近更新 更多