Hầu hết các trang web trên internet đều nói:
"sử dụng
javaclệnh để biên dịch một.javatập tin. Sau đó chạy nó bằngjavalệnh"
Nhưng hôm nay tôi đã cố gắng chạy một chương trình java mà không có javacvà tôi đã nhận được một kết quả lạ.
Dưới đây là nội dung của một tệp có tên hello.java:
public class Myclass {
public static void main(String[] args){
System.out.println("hello world");
}
}
Rồi tôi chạy:
$ javac hello.java
Điều này cho tôi lỗi này:
hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java
public class Myclass {
^
1 error
Nhưng khi tôi chạy nó mà không có javaclệnh, nó đã thực thi mà không có bất kỳ lỗi nào.
$ java hello.java
hello world
Liệu javalệnh cũng biên dịch chương trình? Nếu có, tại sao chúng ta cần javaclệnh?
Phiên bản java của tôi là:
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.javavà sau đó từ dòng lệnh biên dịch nó như thế này javac Myclass.javavà sau đó chạy nó như thế này java Myclass.
javacbiên dịch nguồn Java thành mã byte được giải thích cụ thể của JVM và javalệnh sẽ tải nó bên trong ClassLoader của JVM.