pre*_*2v0 3 java javac java-11
我安装了 Java 11。当我运行命令时java <filename.java>,为了编译和运行代码,它编译并运行程序,在 CMD 中显示输出,但它不生成任何.class文件。
你能向我解释为什么它不生成.class文件吗?
Gio*_*uri 13
看看JEP 330。
从 Java 11 开始,java FileName.java编译并运行FileName.java;然而,编译发生在“幕后”,没有明确地产生相应的.class文件。相反,它直接将相应的字节码加载到 JVM 实例中。
单文件程序(整个程序包含在一个源文件中)——在学习 Java 的早期阶段和编写小型实用程序时很常见。在这种情况下,在运行程序之前必须编译它是纯粹的仪式。此外,单个源文件可能会编译为多个类文件,这为“运行此程序”的简单目标增加了打包开销。希望能够使用 java 启动器直接从源代码运行程序:
java HelloWorld.java
Run Code Online (Sandbox Code Playgroud)
如果要将.class文件作为输出,仍应使用javac, 作为:
javac FileName.java
Run Code Online (Sandbox Code Playgroud)