如何解决使用“ java”编译类时,Java 11不会生成.class文件
我已经安装了Java 11。当我运行命令java <filename.java>
进行编译和运行代码时,它将编译并运行程序,以CMD显示输出,但不会产生任何.class
文件。
您能告诉我为什么它不产生.class
文件吗?
解决方法
看看JEP 330。
自Java 11起,java FileName.java
编译并运行FileName.java
;但是,编译发生在“幕后”,而没有显式生成相应的.class
文件。而是直接将相应的字节码加载到JVM实例中。
动机
单文件程序(整个程序位于单个源文件中)-在学习Java的早期阶段以及编写小型实用程序时很常见。在这种情况下,必须在运行程序之前对其进行编译是纯粹的仪式。此外,单个源文件可能会编译为多个类文件,这给“运行该程序”的简单目标增加了打包开销。希望能够使用Java启动器直接从源代码运行程序:
java HelloWorld.java
如果要将.class
文件作为输出,仍应使用javac
,如下:
javac FileName.java
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。