执行.class文件而不编译

时间:2014-12-18 18:01:38

标签: java

为什么直接使用.class扩展名保存而没有编译的类不能由JVM执行。是否有任何类型的元数据或其他内容附加到.class文件,因此只有JVM被识别为有效的.class文件?

请帮我澄清一下 提前致谢

3 个答案:

答案 0 :(得分:2)

Java类文件是一个名为bytecode的已编译中间形式。字节码由JVM解释并执行。它不是人类可读的文字。

如果您需要该功能,我建议您研究Groovy和Scala(两者都是JVM托管语言,并且都可以作为脚本语言运行)。

答案 1 :(得分:0)

.class filrs有一个特定的格式。没有理由为什么jvm应该执行除了这种格式以外的任何东西,因为它也被称为.class。

答案 2 :(得分:0)

如果你有一个文本文件,它不是.class(并且类加载器不会只加载有效的类文件)。尝试查看现有类的字节码;您可以使用javap -v对其进行反编译,以便您可以看到两个文件之间的差异.....