JVM tidak dapat langsung menjalankan kode yang Anda tulis. Itu hanya tahu bagaimana menjalankan program yang ditulis dalam bytecode. Bytecode adalah bahasa tingkat rendah yang dekat dengan kode mesin.

Untuk Java, kompilasi adalah terjemahan program (tingkat tinggi) yang ditulis dalam Java ke dalam program yang sama yang ditulis dalam bytecode.

Kode Anda diteruskan dalam file .java ke kompiler. Jika kompiler tidak menemukan kesalahan dalam kode, maka Anda mendapatkan kembali file bytecode baru. File ini akan memiliki nama yang sama tetapi dengan ekstensi yang berbeda: .class . Jika ada kesalahan dalam kode, maka kompiler akan memberi tahu Anda "program tidak dapat dikompilasi". Maka Anda perlu membaca setiap pesan kesalahan dan memperbaiki kesalahan tersebut.

Anda menggunakan perintah javac untuk menjalankan kompiler, yang merupakan bagian dari JDK (Java Development Kit). Itu artinya jika Anda hanya menginstal JRE (Java Runtime Environment), maka Anda tidak akan memiliki kompilernya! Anda hanya akan memiliki JVM, yang hanya dapat menjalankan bytecode. Jadi kami menginstal JDK dan meneruskan file .java kami ke kompiler.

Sebagai contoh, mari kita ambil program sederhana dengan beberapa keluaran konsol:


class MySolution {
   public static void main(String[] args) {
      System.out.println("Hi, command line!");
   }
}

Mari simpan kode ini ke file D:/temp/MySolution.java .

Mari kompilasi kode kita menggunakan perintah


D:\temp>javac MySolution.java

Jika tidak ada kesalahan kompilasi pada kode, file MySolution.class akan muncul di folder temp . Terlebih lagi, file MySolution.java yang berisi kode Anda tidak akan kemana-mana. Itu tetap di tempatnya. Tapi sekarang MySolution.class berisi bytecode dan siap dijalankan langsung oleh JVM.

Contoh kami sesederhana mungkin, tetapi bahkan proyek terbesar dan paling kompleks pun menggunakan perintah javac . Jadi akan sangat berguna bagi Anda untuk mengetahui cara kerjanya.

Anda dapat mengkompilasi lebih dari satu kelas sekaligus. Misalnya, ada file lain Cat.java di folder temp :


D:\temp>javac MySolution.java Cat.java

atau ini:


D:\temp>javac *.java

Setelah dikompilasi, file .class dapat dikemas dalam file jar , yang dapat dengan mudah dipindahkan ke komputer lain dan kemudian dijalankan di dalamnya. Berikut adalah contoh cara membuat file jar :


D:\temp>jar cvfe myjar.jar MySolution MySolution.class Cat.class

Di mana:

  • jar adalah perintah untuk membuat file .jar , termasuk dalam JDK

  • cvfe adalah opsi baris perintah dengan arti sebagai berikut:

    • c - buat file jar baru

    • v – menampilkan informasi verbose

    • f – menunjukkan bahwa kita ingin keluaran alat dimasukkan ke dalam file ( myjar.jar )

    • e – menunjukkan titik masuk ( MySolution ), yaitu kelas yang berisi metode utama

  • MySolution.java Cat.class – nama file yang dipisahkan spasi yang akan dimasukkan ke dalam file jar .

Inilah cara kami menjalankan file jar yang dihasilkan :


D:\temp>java -jar myjar.jar
Untuk informasi lebih rinci:
Alat javac dan jar memiliki bantuan bawaan . Untuk menampilkannya, jalankan perintah berikut di baris perintah:
  • javac --bantuan
  • toples --tolong