JVM'et kan ikke direkte køre den kode, du skriver. Det ved kun, hvordan man udfører programmer skrevet i bytecode. Bytecode er et sprog på lavt niveau, der er tæt på maskinkode.

For Java er kompilering oversættelsen af ​​et (højt niveau) program skrevet i Java til det samme program skrevet i bytecode.

Din kode sendes i en .java-fil til compileren. Hvis compileren ikke finder fejl i koden, får du en ny bytekode-fil tilbage. Denne fil vil have det samme navn, men en anden filtypenavn: .class . Hvis der er fejl i koden, vil compileren fortælle dig "programmet kompilerede ikke". Derefter skal du læse hver fejlmeddelelse og rette fejlene.

Du bruger javac-kommandoen til at starte compileren, som er en del af JDK (Java Development Kit). Det betyder, at hvis du kun installerer JRE (Java Runtime Environment), så har du ikke compileren! Du vil kun have JVM, som kun kan køre bytekode. Så vi installerer JDK og sender vores .java- fil til compileren.

Lad os for eksempel tage et simpelt program med noget konsoloutput:


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

Lad os gemme denne kode i filen D:/temp/MySolution.java .

Lad os kompilere vores kode ved hjælp af kommandoen


D:\temp>javac MySolution.java

Hvis der ikke er nogen kompileringsfejl i koden, vil en MySolution.class -fil dukke op i temp- mappen. Hvad mere er, MySolution.java- filen, der indeholder din kode, går ingen vegne. Den forbliver lige hvor den var. Men nu indeholder MySolution.class bytekode og er klar til at blive kørt direkte af JVM.

Vores eksempel er så enkelt som muligt, men selv de største og mest komplekse projekter bruger javac- kommandoen. Så det vil være meget nyttigt for dig at vide, hvordan det fungerer.

Du kan kompilere mere end én klasse ad gangen. Antag for eksempel, at der er en anden fil Cat.java i temp- mappen:


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

eller dette:


D:\temp>javac *.java

Når de er kompileret, kan .class- filerne pakkes i en jar- fil, som bekvemt kan flyttes til forskellige computere og derefter køre på dem. Her er et eksempel på, hvordan man opretter en jar- fil:


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

hvor:

  • jar er kommandoen til at oprette .jar- filer, inkluderet i JDK

  • cvfe er kommandolinjeindstillinger med følgende betydninger:

    • c – opret en ny jar- fil

    • v – vis detaljerede oplysninger

    • f – angiver, at vi ønsker, at værktøjets output skal lægges ind i en fil ( myjar.jar )

    • e – angiver indgangspunktet ( MySolution ) , altså den klasse, der indeholder hovedmetoden

  • MySolution.java Cat.class – mellemrumsadskilte navne på de filer, der vil blive pakket ind i jar- filen.

Sådan kører vi den resulterende jar -fil:


D:\temp>java -jar myjar.jar
For mere detaljeret information:
Java- og jar- værktøjerne har indbygget hjælp . For at vise det skal du køre følgende på kommandolinjen:
  • javac --hjælp
  • krukke --hjælp