我刚刚在玩的时候遇到了这个奇怪的场景:-)
Java 的文档规定一个文件可以包含所有非公共(public)类和不匹配任何类的文件名。当一个人试图在编译后运行时,即使在指定了 main 方法的类之一之后,它也会生成异常。需要说明如何执行此文件的主要方法。
我的测试代码在名为NoPublicClasses.java的文件中如下:
class Class1{
}
class Class2{
public static void main(String[] args){
}
}
它编译得很好。但是如果你尝试运行它,它会抛出异常。您可以在下面查看我尝试过的内容
java NoPublicClasses
对于上述情况,我预计会发生异常,但它确实如我所料发生了
java Class2
它也抛出了意想不到的异常。所以我需要一些好心人来解释原因,或者如果在不更改访问修饰符和文件名或类名的情况下有任何解决此问题的方法,请告诉我。
感谢和问候。
最佳答案
执行 java Class2 时不应该出现异常。我刚刚试过了,它成功了:
package tests;
class Class1 {
}
class Class2 {
public static void main(String[] args) {
System.out.println("Up and running");
}
}
在命令行控制台中:
java tests.Class2
Up and running
关于包含所有非公共(public)类的 Java 文件,其中一个类具有 main 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18166026/