我已经看到了这个问题的大部分答案,但是,任何人都可以告诉 java创作者的想法有什么限制吗?
到目前为止,我从现有的答案中了解到,编译器必须在给出包名时在相应的目录结构中正确找到.java文件。
但是我们知道java运行.class文件而不是.java文件然后,为什么编译器会搜索java文件而不是.class并在代码片段下面备份这个答案,如果把它放在一个.java文件中。要运行它,我运行java Try或java Try2是编译器搜索源代码的情况吗?
class Try {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
class Try2 {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
我见过两个答案,但那些仍然不满足我的问题
Why must a Java file have the same name as its public class?
另外,我无法理解这个问题的JLS。所以再回答一个新问题。
答案 0 :(得分:0)
可以这样写:
<强> TestClass.java 强>
class Test1 {
public static void main(String args[]) {
System.out.println("Test1");
}
}
class Test2 {
public static void main(String args[]) {
System.out.println("Test2");
}
}
现在让我们编译:
javac TestClass.java
您将看到两个文件已创建:
Test1.class
和Test2.class
,每个都会执行不同的主。
现在,如果你是编译器,你怎么知道应该将哪个类作为入口点来执行?
这是限制的原因之一 - 编译器将很容易确定应该将哪个类作为入口点运行。