为什么javac会在文件名中查找.java扩展名。 虽然java不在其参数中查找.class?并自动转到.class文件? 这有什么理由吗?
答案 0 :(得分:4)
没有自动添加.class
:您只需运行java
指定将哪个类用作main。类加载和类路径的详细信息在不同的抽象级别上:可能没有.class
文件,或者例如它在JAR中。
如果你仔细观察,顺便说一句,你会发现java
并没有要求你提供一条路径:参数中没有斜线(或更糟糕的是,反斜杠),只有正确的点分隔包名称。所以它永远不是一个“档案”。
javac
确实可以处理文件,因此您需要指定这些文件。
答案 1 :(得分:0)
我认为除了.java
文件是由程序员创建而.class
文件是编译器生成的事实之外,这个决定背后还有一个非常合理的推理。如果这个问题纯粹是为了教育目的,答案“只是因为它的意思是”应该是相当不错的。 :)