示例:我有一些源代码,FooBar.java
javac FooBar.java
给了我FooBar.class
。
为什么JVM命令行API采用FooBar
而不是FooBar.class
(在UNIX FYI上工作)?
答案 0 :(得分:5)
那只是一个惯例!使用完全限定的类名加载类。 ClassLoader
然后知道如何将类名映射到文件名(例如通过附加'.class')。
答案 1 :(得分:4)
仅仅因为您必须告诉JVM您要运行的类的名称,而不是它的实际文件名。 另一个例子,如果您的类是myPackage / FooBar.java,您将编译为myPackage / FooBar.class,尽管您将myPackage.FooBar作为jvm参数。