La plupart des sites Web sur Internet disent:
"utilisez la
javac
commande pour compiler un.java
fichier. Puis exécutez-le en utilisant lajava
commande"
Mais aujourd'hui, j'ai essayé d'exécuter un programme java sans javac
et j'ai obtenu un résultat étrange.
Voici le contenu d'un fichier appelé hello.java
:
public class Myclass {
public static void main(String[] args){
System.out.println("hello world");
}
}
Puis j'ai couru:
$ javac hello.java
Ce qui me donne cette erreur:
hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java
public class Myclass {
^
1 error
Mais quand je l'exécute sans la javac
commande, il s'exécute sans aucune erreur.
$ java hello.java
hello world
La java
commande compile- t-elle également le programme? Si oui, pourquoi avons-nous besoin de la javac
commande?
La version de mon java est:
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
puis à partir de la ligne de commande, compilez-le comme ceci javac Myclass.java
, puis exécutez-le comme ceci java Myclass
.
javac
toujours utilisé pour compiler si vous ne voulez pas déployer le code source, ou si vous avez plus d'un seul fichier ( documentation de l' java
option for source-file: Uniquement utilisé pour lancer un seul programme de fichier source.)
javac
compile la source Java dans le bytecode interprété spécifique à la JVM et la java
commande le charge dans le ClassLoader de la JVM.