如何在java中设置默认的主类?

如何在java中设置默认的主类?,java,netbeans,Java,Netbeans,我在同一个包中有两个类。这两个类中都有main方法。现在我想构建一个jar文件。我想构建2个jar文件,它们使用不同的主函数作为默认主函数 乙二醇 如何在NetBeans IDE中实现它 我找到了答案。 您可以在netbeans中轻松完成此任务: 1) 右键单击项目>属性>运行>选择类frm并下拉列表。在netbeans中非常简单。岩石 在jar文件中,您可以将其添加到manifest.mft中 Main-Class : A 然后jar文件将是可执行的,并将调用正确的main 关于如何在Net

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

乙二醇

如何在NetBeans IDE中实现它

我找到了答案。 您可以在netbeans中轻松完成此任务:
1) 右键单击项目>属性>运行>选择类frm并下拉列表。在netbeans中非常简单。岩石

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

Main-Class : A
然后jar文件将是可执行的,并将调用正确的main

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

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

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


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

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

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

有几种方法可以使用指定其他命名文件作为JAR的清单

要使用的特定类是在META-INF/MANIFEST.MF文件中使用指定的


至于如何在Netbeans中实现这一点,我不太清楚,我通常使用IntelliJ和/或Eclipse,并且通常通过ANT或Maven构建JAR。

如果您要创建的两个JAR基本相同,唯一的区别是应该从每个JAR开始的主类,您可以将所有类放在第三个jar中。然后创建两个JAR,每个JAR中只包含一个清单。在MANIFEST.MF文件中,使用
Main class
属性命名条目类


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

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

java my.jar class1

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

java -classpath my.jar class1

在项目窗口中右键单击项目节点,然后选择项目属性。
然后找到run,在那里你可以设置你的主类,**实际上是从netbeans默认帮助中得到的,作为一个注释,我必须允许客户在jar中执行一个类,这意味着清单文件无法修改(他们不能这样做)。多亏了Anthony和samy delux的评论,客户现在可以运行以下内容来访问特定类的主要内容:

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

按F11生成并运行程序。一旦你运行程序,你将有一个类的列表。从列表中选择主类,然后单击“确定”运行。

您可以右键单击项目,选择“设置配置”,然后选择“自定义”,从中可以选择主类。 在Netbeans 11(Gladel项目)中,请遵循以下步骤:

在选项卡
files>yourprojectname>
中双击文件
中的“build.gladel”
,然后在
行中设置“mainClassName:'yourpackagepath.yourmanclass'”


希望这有帮助

java-classpath my.jar class1
允许您运行实际上没有
Main类集的jar。它对我不起作用。我把它设为A类,但它仍在运行旧的类。我相信这是一只虫子。这就是我讨厌netbeans的原因。这让简单的事情变得困难。这个答案对我很有用。只需在类中放置一个main,NetBeans就可以检测并运行Eclipse(这一个出现在Google中):这应该是这个线程的正确答案,因为它是完成如此简单任务的最快解决方案。
java -cp c:\path\to\jar\jarFile.jar com.utils.classpath -e -v textString