Cette commande que j'utilise avec désinvolture. Parfois, il y a des moments où vous ne pouvez pas compiler simplement lors de la spécification du codage du fichier ou lors de la spécification d'un package, donc je vais le résumer comme un rappel.
Le contenu décrit ci-dessous est exécuté dans l'environnement suivant. Système d'exploitation: macOS Mojave (version 10.14.4) commande javac: version 1.8.0_151
Tout d'abord, à propos de l'utilisation simple, du cas de la compilation de l'exemple de source écrit en Java comme suit.
Sample.java
public class Sample {
public static void main(String[] args) {
System.out.println("Hello, world!!");
}
}
Spécifiez simplement le fichier ci-dessus dans l'argument de la commande javac et exécutez-le comme suit. S'il n'y a pas d'erreurs particulières et que la compilation est réussie, une invite s'affiche.
Exemple d'exécution 1
$ javac Sample.java
En passant, si la syntaxe Java est incorrecte, l'erreur suivante se produit (lorsque l'orthographe vide de la valeur de retour de la fonction principale est incorrecte). Le message est étonnamment gentil, et si vous le lisez correctement, vous pouvez généralement comprendre pourquoi l'erreur s'est produite.
Exemple d'exécution 1(Erreur de compilation)
$ javac Sample.java
Sample.java:2:Erreur:Impossible de trouver le symbole
public static viod main(String[] args) {
^
symbole:Classe nulle
endroit:Échantillon de classe
1 erreur
Vient ensuite le cas où le codage de caractères du fichier source dans lequel le code Java est écrit est différent du codage de caractères du système de l'environnement client. Par exemple, si c'est «Windows», cela devient une erreur, donc fondamentalement «SJIS», par exemple, enregistrez le fichier qui décrit ou «Hello» dans la source en japonais «en UTF-8» pour compiler.
Vérifiez préalablement pour donner un exemple de l'erreur. Tout d'abord, l'environnement par défaut? Obtenez le codage du fichier. Créez la source suivante et exécutez-la après la compilation. Lorsqu'il est exécuté, le codage du fichier est émis vers la sortie standard. Cette fois, il est sorti sous le nom ʻUTF-8`.
EncodingCheck.java
public class EncodingCheck {
public static void main(String[] args) {
System.out.println(System.getProperty("file.encoding"));
}
}
Ensuite, enregistrez le fichier source avec le contenu suivant dans le codage de caractères SJIS
et compilez-le. Ceci est réglé sur SJIS
pour le rendre différent du codage de fichier examiné à l'avance ci-dessus.
Sample2.java
public class Sample2 {
public static void main(String[] args) {
System.out.println("Bonjour");
}
}
Le résultat de l'exécution est le suivant. Une erreur de compilation s'est produite. En regardant le contenu de l'erreur, c'était une erreur car un code de caractère qui ne pouvait pas être affiché normalement en UTF8 a été utilisé. Dans ce cas, vous pouvez spécifier le codage des caractères avec l'option de la commande javac
(dans ce cas, bien sûr, vous pouvez compiler normalement même si vous enregistrez à nouveau le fichier en UTF8).
(Je ne sais pas pourquoi 7 erreurs sont affichées. Je veux le vérifier même quand j'en ai envie)
Exemple d'exécution 2 (erreur de compilation)
$ javac Sample2.java
Sample2.java:3:Erreur:Ce caractère ne peut pas être mappé au codage UTF8
System.out.println("����ɂ���");
^
Sample2.java:3:Erreur:Ce caractère ne peut pas être mappé au codage UTF8
System.out.println("����ɂ���");
^
Sample2.java:3:Erreur:Ce caractère ne peut pas être mappé au codage UTF8
System.out.println("����ɂ���");
^
Sample2.java:3:Erreur:Ce caractère ne peut pas être mappé au codage UTF8
System.out.println("����ɂ���");
^
Sample2.java:3:Erreur:Ce caractère ne peut pas être mappé au codage UTF8
System.out.println("����ɂ���");
^
Sample2.java:3:Erreur:Ce caractère ne peut pas être mappé au codage UTF8
System.out.println("����ɂ���");
^
Sample2.java:3:Erreur:Ce caractère ne peut pas être mappé au codage UTF8
System.out.println("����ɂ���");
^
7 erreurs
Comme indiqué ci-dessous, si vous spécifiez le codage de caractères du fichier SJIS
dans l'argument de l'option ʻencoding et que vous l'exécutez, aucune erreur de compilation ne se produira (D'ailleurs, l'option ʻencoding
est décrite après le nom du fichier. Aucun problème).
Exemple d'exécution 2
$ javac -encoding sjis Sample2.java
Il y a encore d'autres choses que j'aimerais confirmer, mais même si j'écris plus, ce sera trop, donc c'est fini. Plus tard, j'aimerais vérifier le chemin de classe et le chemin source.
Recommended Posts