Java 可以从另一个B类主方法调用A类的多个主方法吗

Java 可以从另一个B类主方法调用A类的多个主方法吗,java,Java,我想从另一个类main方法调用具有不同字符串参数的同一类的main方法 public class A { public static void main(String[] args) { String[] testArgs = {"Hi", "Helloworld" }; B.main(testArgs ); String[] testArgs1 = {"Hi", "Java" }; B.main(testArgs

我想从另一个类main方法调用具有不同字符串参数的同一类的main方法

public class A {

    public static void main(String[] args) {

        String[] testArgs = {"Hi", "Helloworld" };

        B.main(testArgs );

        String[] testArgs1 = {"Hi", "Java" };

        B.main(testArgs1 );

    }

}

public class B {

    public static void main(String[] args) {

        System.out.println(args[0] + " " + args[1]);
    }

}

是的,您可以,但是您只需要从类B中删除“public”,因为在java中,文件只有一个public类。

是的,您可以调用main方法,就像从同一个类中或从另一个类中调用任何其他静态方法一样(就像您已经做的那样)

1) 如果将两个类(如A和B)放在同一个源文件中,那么其中一个类必须声明为public。此公共类的名称必须是文件名的前缀。(因此,如果A是公共类,如果存储在普通文件系统中,则文件名必须是A.java。)

2) 如果将A和B放在单独的源文件中,它们都可以是公共的

无论您选择如何存储这些类,您都以相同的方式调用主方法。要从A调用B的main方法,只需编写

B.main( ... )

你应该能够,是什么阻止你尝试它?你到底有什么问题?我不想改变B类代码,而是想执行A类。我怎么能做到呢。正如您所建议的,当我从类A主方法中删除public时,我无法执行此操作。如果您从类A中删除public,则将java文件重命名为B,由JVM执行。现在,您的主类是B。我正在使用带有类B的项目作为带有类a的项目中的jar。现在,我想使用来自类a项目的不同字符串参数调用B的主方法两次。这是我的用例,您可以粘贴示例代码来实现这一点。您可以执行您的目标,使用cmd直接调用类Ajava-cp sample.jar com.test.A arg1 arg2是的,我们可以。但是我们不能把它用在mac用户身上。正如你在第2点中所说的,我是这样做的。但是它只执行第一个调用,而不是第二个调用。嗯,奇怪。我认为没有理由只执行对B.main的第一个调用,而不是两个调用。你在开汽车吗?是的。我正在跑步。。代码中有点小错误。在我的代码中,我有System.exit(0),这就是为什么它不允许调用下一个main。感谢Hakan的帮助。请告诉我,我的B类有System.exit(0)成功终止JVM,如果我删除该代码,任何影响都会发生。