为什么javac需要.java扩展名和java不需要.class扩展名

时间:2012-01-06 09:28:18

标签: java

为什么javac会在文件名中查找.java扩展名。 虽然java不在其参数中查找.class?并自动转到.class文件? 这有什么理由吗?

2 个答案:

答案 0 :(得分:4)

没有自动添加.class:您只需运行java指定将哪个类用作main。类加载和类路径的详细信息在不同的抽象级别上:可能没有.class文件,或者例如它在JAR中。

如果你仔细观察,顺便说一句,你会发现java并没有要求你提供一条路径:参数中没有斜线(或更糟糕的是,反斜杠),只有正确的点分隔包名称。所以它永远不是一个“档案”。

另一方面,

javac确实可以处理文件,因此您需要指定这些文件。

答案 1 :(得分:0)

我认为除了.java文件是由程序员创建而.class文件是编译器生成的事实之外,这个决定背后还有一个非常合理的推理。如果这个问题纯粹是为了教育目的,答案“只是因为它的意思是”应该是相当不错的。 :)