Sebagian besar situs web di internet mengatakan:
"gunakan
javacperintah untuk mengkompilasi.javafile. Kemudian jalankan dengan menggunakanjavaperintah"
Tapi hari ini saya mencoba menjalankan program java tanpa javacdan saya mendapat hasil yang aneh.
Berikut adalah isi file yang disebut hello.java:
public class Myclass {
public static void main(String[] args){
System.out.println("hello world");
}
}
Lalu aku berlari:
$ javac hello.java
Yang memberi saya kesalahan ini:
hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java
public class Myclass {
^
1 error
Tetapi ketika saya menjalankannya tanpa javacperintah, itu dieksekusi tanpa kesalahan.
$ java hello.java
hello world
Apakah javaperintah juga mengkompilasi program? Jika ya, mengapa kita membutuhkan javacperintah?
Versi java saya adalah:
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.javadan kemudian dari baris perintah kompilasi seperti ini javac Myclass.javadan kemudian jalankan seperti ini java Myclass.
javacmasih digunakan untuk mengkompilasi jika Anda tidak ingin menyebarkan kode sumber, atau Anda memiliki lebih dari satu file ( dokumentasi dari java: untuk opsi sumber-berkas Hanya digunakan untuk meluncurkan program sumber-file tunggal.)
javacmengkompilasi sumber Java ke dalam bytecode spesifik JVM yang ditafsirkan dan javaperintah memuatnya di dalam ClassLoader JVM.