JVM tidak boleh terus menjalankan kod yang anda tulis. Ia hanya tahu bagaimana untuk melaksanakan program yang ditulis dalam bytecode. Bytecode ialah bahasa peringkat rendah yang hampir dengan kod mesin.

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

Kod anda dihantar dalam fail .java kepada pengkompil. Jika pengkompil tidak menemui ralat dalam kod, maka anda mendapatkan kembali fail bytecode baharu. Fail ini akan mempunyai nama yang sama tetapi sambungan yang berbeza: .class . Jika terdapat ralat dalam kod, maka pengkompil akan memberitahu anda "program tidak dikompilasi". Kemudian anda perlu membaca setiap mesej ralat dan membetulkan ralat.

Anda menggunakan arahan javac untuk memanggil pengkompil, yang merupakan sebahagian daripada JDK (Java Development Kit). Ini bermakna jika anda hanya memasang JRE (Java Runtime Environment), maka anda tidak akan mempunyai pengkompil! Anda hanya akan mempunyai JVM, yang hanya boleh menjalankan bytecode. Jadi kami memasang JDK dan menghantar fail .java kami kepada pengkompil.

Sebagai contoh, mari kita ambil program mudah dengan beberapa output konsol:

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

Mari simpan kod ini ke fail D:/temp/MySolution.java .

Mari kita susun kod kita menggunakan arahan

D:\temp>javac MySolution.java

Jika tiada ralat kompilasi dalam kod, fail MySolution.class akan muncul dalam folder temp . Apatah lagi, fail MySolution.java yang mengandungi kod anda tidak pergi ke mana-mana. Ia kekal di tempatnya. Tetapi kini MySolution.class mengandungi bytecode dan sedia untuk dijalankan terus oleh JVM.

Contoh kami semudah mungkin, tetapi projek terbesar dan paling kompleks pun menggunakan arahan javac . Jadi ia akan sangat berguna untuk anda mengetahui cara ia berfungsi.

Anda boleh menyusun lebih daripada satu kelas pada satu masa. Sebagai contoh, katakan terdapat satu lagi fail Cat.java dalam folder temp :

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

Atau ini:

D:\temp>javac *.java

Setelah disusun, fail .class boleh dibungkus dalam fail jar , yang boleh dialihkan ke komputer yang berbeza dengan mudah dan kemudian dijalankan padanya. Berikut ialah contoh cara membuat fail jar :

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

di mana:

  • jar ialah arahan untuk mencipta fail .jar , termasuk dalam JDK

  • cvfe ialah pilihan baris arahan dengan makna berikut:

    • c – buat fail balang baharu

    • v – memaparkan maklumat verbose

    • f – menunjukkan bahawa kita mahu output alat dimasukkan ke dalam fail ( myjar.jar )

    • e – menunjukkan titik masuk ( MySolution ), iaitu kelas yang mengandungi kaedah utama

  • MySolution.java Cat.class – nama fail yang dipisahkan dengan ruang yang akan dimasukkan ke dalam fail jar .

Begini cara kami menjalankan fail jar yang terhasil :

D:\temp>java -jar myjar.jar
Untuk maklumat lebih terperinci:
Alat javac dan jar mempunyai bantuan terbina dalam . Untuk memaparkannya, jalankan yang berikut pada baris arahan:
  • javac --help
  • balang --bantuan