Dieser Befehl, den ich beiläufig benutze. Manchmal gibt es Zeiten, in denen Sie nicht einfach kompilieren können, wenn Sie die Dateicodierung oder ein Paket angeben. Deshalb fasse ich es als Erinnerung zusammen.
Die unten beschriebenen Inhalte werden in der folgenden Umgebung ausgeführt. Betriebssystem: macOS Mojave (Version 10.14.4) javac Befehl: Version 1.8.0_151
Zunächst zur einfachen Verwendung, zum Fall des Kompilierens der in Java geschriebenen Beispielquelle wie folgt.
Sample.java
public class Sample {
public static void main(String[] args) {
System.out.println("Hello, world!!");
}
}
Geben Sie einfach die obige Datei im Argument des Befehls javac an und führen Sie sie wie folgt aus. Wenn keine besonderen Fehler vorliegen und die Kompilierung erfolgreich ist, wird eine Eingabeaufforderung angezeigt.
Ausführungsbeispiel 1
$ javac Sample.java
Übrigens, wenn die Java-Syntax falsch ist, tritt der folgende Fehler auf (wenn die ungültige Schreibweise des Rückgabewerts der Hauptfunktion falsch ist). Die Nachricht ist überraschend nett und wenn Sie sie richtig lesen, werden Sie verstehen, warum der Fehler auftritt.
Ausführungsbeispiel 1(Kompilierungsfehler)
$ javac Sample.java
Sample.java:2:Error:Symbol kann nicht gefunden werden
public static viod main(String[] args) {
^
Symbol:Klasse nichtig
Ort:Klassenbeispiel
1 Fehler
Als nächstes unterscheidet sich die Zeichenkodierung der Quelldatei, in die der Java-Code geschrieben ist, von der Zeichenkodierung des Systems der Clientumgebung. Wenn es sich beispielsweise um "Windows" handelt, wird es zu einem Fehler. Speichern Sie daher im Grunde genommen "SJIS" die Datei, die "Hallo" beschreibt, in der japanischen Quelle "in UTF-8", um sie zu kompilieren.
Überprüfen Sie dies vorab, um ein Beispiel für den Fehler zu geben. Zunächst einmal die Umgebung Standard? Holen Sie sich die Dateicodierung. Erstellen Sie die folgende Quelle und führen Sie sie nach der Kompilierung aus. Bei der Ausführung wird die Dateicodierung in die Standardausgabe ausgegeben. Dieses Mal wurde es als "UTF-8" ausgegeben.
EncodingCheck.java
public class EncodingCheck {
public static void main(String[] args) {
System.out.println(System.getProperty("file.encoding"));
}
}
Speichern Sie als Nächstes die Quelldatei mit dem folgenden Inhalt in der Zeichencodierung "SJIS" und kompilieren Sie sie. Dies wird auf "SJIS" gesetzt, um es von der oben im Voraus untersuchten Dateicodierung zu unterscheiden.
Sample2.java
public class Sample2 {
public static void main(String[] args) {
System.out.println("Hallo");
}
}
Das Ausführungsergebnis ist wie folgt. Ein Kompilierungsfehler ist aufgetreten. Beim Betrachten des Fehlerinhalts handelte es sich um einen Fehler, da ein Zeichencode verwendet wurde, der in UTF8 nicht normal angezeigt werden konnte. In diesem Fall können Sie die Zeichenkodierung mit der Option des Befehls "javac" angeben (in diesem Fall können Sie natürlich normal kompilieren, indem Sie die Datei erneut in UTF8 speichern). (Ich weiß nicht, warum 7 Fehler angezeigt werden. Ich möchte es herausfinden, auch wenn ich Lust dazu habe.)
Ausführungsbeispiel 2 (Kompilierungsfehler)
$ javac Sample2.java
Sample2.java:3:Error:Dieses Zeichen kann nicht der Codierung von UTF8 zugeordnet werden
System.out.println("����ɂ���");
^
Sample2.java:3:Error:Dieses Zeichen kann nicht der Codierung von UTF8 zugeordnet werden
System.out.println("����ɂ���");
^
Sample2.java:3:Error:Dieses Zeichen kann nicht der Codierung von UTF8 zugeordnet werden
System.out.println("����ɂ���");
^
Sample2.java:3:Error:Dieses Zeichen kann nicht der Codierung von UTF8 zugeordnet werden
System.out.println("����ɂ���");
^
Sample2.java:3:Error:Dieses Zeichen kann nicht der Codierung von UTF8 zugeordnet werden
System.out.println("����ɂ���");
^
Sample2.java:3:Error:Dieses Zeichen kann nicht der Codierung von UTF8 zugeordnet werden
System.out.println("����ɂ���");
^
Sample2.java:3:Error:Dieses Zeichen kann nicht der Codierung von UTF8 zugeordnet werden
System.out.println("����ɂ���");
^
7 Fehler
Wie unten gezeigt, tritt kein Kompilierungsfehler auf, wenn Sie die Dateikenncodierung "SJIS" im Argument der Option "Codierung" angeben und ausführen (die Option "Codierung" wird übrigens nach dem Dateinamen beschrieben. Kein Problem).
Ausführungsbeispiel 2
$ javac -encoding sjis Sample2.java
Es gibt noch andere Dinge, die ich bestätigen möchte, aber selbst wenn ich mehr schreibe, wird es zu viel sein, also ist es vorbei. Später möchte ich den Klassenpfad und den Quellpfad überprüfen.
Recommended Posts