【问题标题】:how to set default main class in java?如何在java中设置默认主类?
【发布时间】:2009-10-28 04:05:14
【问题描述】:

我在同一个包中有 2 个类。这两个类都有 main 方法。现在我想构建一个 jar 文件。我想构建 2 个使用不同主函数作为默认主函数的 jar 文件。

例如

class A
{
  public static void main(String args[])
  {
    //do something
  }
}

class B
{
  public static void main(String args[])
  {
    //do something
  }
}

如何在 NetBeans IDE 中执行此操作?

我找到了答案。 你可以在netbeans中轻松做到: 1)右键单击项目>属性>运行>选择类frm并下拉列表。在netbeans中如此简单。 Netbeans 摇滚!

【问题讨论】:

  • 它对我不起作用。我将它设置为 A 类,但它仍在运行旧类。我相信这是一个错误。这就是我讨厌netbeans的原因。它使简单的事情变得困难。
  • 这个答案对我有用。只需在类中放置一个 main,NetBeans 就会检测并运行它
  • 对于 Eclipse(这个出现在 Google 中):stackoverflow.com/a/12811633/1599699

标签: java netbeans


【解决方案1】:

在“项目”窗口中右键单击项目节点并选择“项目属性”。 然后找到运行,在那里你可以设置你的主类,,**实际上是从netbeans默认帮助中得到的

【讨论】:

  • 这应该是这个帖子的正确答案,因为它是这样一个简单任务的最快解决方案。
【解决方案2】:

在 jar 文件中,您可以将其添加到 manifest.mft

Main-Class : A

jar 文件将是可执行的,并会调用正确的 main。

关于如何在 Netbeans 中执行此操作,您可以查看以下内容: Producing executable jar in NetBeans

【讨论】:

    【解决方案3】:

    您可以右键单击项目选择“设置配置”然后“自定义”,从那里您可以选择您的主类。

    【讨论】:

      【解决方案4】:

      如果您要创建 2 个可执行 JAR 文件,每个文件都有自己的清单文件,每个清单文件都将指定包含您要用于开始执行的 main() 方法的类。

      在每个 JAR 文件中,清单将是一个在 JAR 内具有以下路径/名称的文件 - META-INF/MANIFEST.MF

      有多种方法可以使用 JAR command-line parameters 将替代命名的文件指定为 JAR 清单。

      您要使用的特定类在 META-INF/MANIFEST.MF 文件中使用 Main-Class: package.classname 指定。

      至于如何在 Netbeans 中执行此操作 - 我不确定 - 我通常使用 IntelliJ 和/或 Eclipse,并且通常通过 ANT 或 Maven 构建 JAR。

      【讨论】:

        【解决方案5】:

        假设你的 my.jar 有一个 class1 和 class2,每个都有一个 main 定义,你可以像这样调用 java:

        java my.jar class1
        
        java my.jar class2
        

        如果您需要为 java 指定其他选项,只需确保它们位于 my.jar 之前

        java -classpath my.jar class1
        

        【讨论】:

        • java -classpath my.jar class1 允许您运行实际上没有 Main-Class 集的 JAR。
        【解决方案6】:

        作为评论,我必须允许客户在 jar 中执行一个类,这意味着无法修改清单文件(不能指望他们这样做)。感谢 Anthony 的帖子和 samy-delux 的评论,这是客户现在可以运行以访问特定类的主要内容:

        java -cp c:\path\to\jar\jarFile.jar com.utils.classpath -e -v textString
        

        【讨论】:

          【解决方案7】:

          您可以在 jar 文件的清单中设置 Main-Class 属性以指向您要自动运行的文件。

          【讨论】:

            【解决方案8】:

            如果您要创建的两个 jar 几乎相同,唯一的区别是应该从每个 jar 启动的主类,您可以将所有类放在第三个 jar 中。然后创建两个罐子,每个罐子只有一个清单。在 MANIFEST.MF 文件中,使用 Main-Class 属性命名条目类。

            另外,指定Class-Path 属性。 this 的值应该是包含所有共享代码的 jar 文件的名称。然后将所有三个jar文件部署在同一目录中。当然,如果你有第三方库,也可以在 Class-Path 属性中列出。

            【讨论】:

              【解决方案9】:

              在 Netbeans 11(Gladle 项目)中执行以下步骤:

              在标签files>yourprojectname>中双击文件"build.gladle"而不是在"mainClassName:'yourpackagepath.YourMainClass'"行中设置

              希望这会有所帮助!

              【讨论】:

                【解决方案10】:

                最好的方法是在 Ant 脚本中处理这个问题。您可以为 2 个 jar 文件创建 2 个不同的任务。在第一个 jar 的清单文件中指定 A 类作为主类。同样在第二个 jar 的清单文件中指定 B 类作为主类。

                您可以轻松地从 Netbeans 运行 Ant 任务。

                【讨论】:

                  【解决方案11】:

                  按 F11 构建并运行程序。运行程序后,您将获得一个类列表。从列表中选择您的主类,然后单击确定运行。

                  【讨论】:

                    猜你喜欢
                    • 2014-12-26
                    • 2016-12-12
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-10-01
                    • 2013-12-30
                    • 1970-01-01
                    相关资源
                    最近更新 更多