La maggior parte dei siti Web su Internet afferma:
"usa il
javac
comando per compilare un.java
file. Quindi eseguilo usando iljava
comando"
Ma oggi ho provato a eseguire un programma Java senza javac
e ho ottenuto uno strano risultato.
Ecco i contenuti di un file chiamato hello.java
:
public class Myclass {
public static void main(String[] args){
System.out.println("hello world");
}
}
Quindi ho corso:
$ javac hello.java
Il che mi dà questo errore:
hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java
public class Myclass {
^
1 error
Ma quando lo eseguo senza il javac
comando, viene eseguito senza errori.
$ java hello.java
hello world
Il java
comando compila anche il programma? Se sì, perché abbiamo bisogno del javac
comando?
La versione del mio java è:
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.java
e quindi dalla riga di comando compilarlo in questo modo javac Myclass.java
e quindi eseguirlo in questo modo java Myclass
.
javac
ancora utilizzato per la compilazione se non si desidera distribuire il codice sorgente, o se si dispone di più di un singolo file ( la documentazione di java
: per l'opzione source-file solo usato per lanciare un unico programma sorgente-file.)
javac
compila l'origine Java in bytecode interpretato specifico per JVM e il java
comando lo carica all'interno del ClassLoader di JVM.