互联网上的大多数网站都说:
“使用
javac
命令编译.java
文件。然后使用java
命令运行它”
但是今天我试图在没有Java的情况下运行Java程序,但javac
结果却很奇怪。
以下是名为的文件的内容hello.java
:
public class Myclass {
public static void main(String[] args){
System.out.println("hello world");
}
}
然后我跑了:
$ javac hello.java
这给了我这个错误:
hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java
public class Myclass {
^
1 error
但是,当我在没有javac
命令的情况下运行它时,它的执行没有任何错误。
$ java hello.java
hello world
该java
命令还会编译程序吗?如果是,为什么我们需要该javac
命令?
我的Java版本是:
openjdk version "12.0.2" 2019-07-16
OpenJDK Runtime Environment (build 12.0.2+10)
OpenJDK 64-Bit Server VM (build 12.0.2+10, mixed mode)
Myclass.java
,然后从命令行像这样编译它javac Myclass.java
,然后像这样运行它即可java Myclass
。
javac
将Java源代码编译为JVM特定的解释字节码,然后该java
命令将其加载到JVM的ClassLoader中。