La maggior parte dei siti Web su Internet afferma:
"usa il
javaccomando per compilare un.javafile. Quindi eseguilo usando iljavacomando"
Ma oggi ho provato a eseguire un programma Java senza javace 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 javaccomando, viene eseguito senza errori.
$ java hello.java
hello world
Il javacomando compila anche il programma? Se sì, perché abbiamo bisogno del javaccomando?
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.javae quindi dalla riga di comando compilarlo in questo modo javac Myclass.javae quindi eseguirlo in questo modo java Myclass.
javacancora 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.)
javaccompila l'origine Java in bytecode interpretato specifico per JVM e il javacomando lo carica all'interno del ClassLoader di JVM.