Über Javac-Befehle

Informationen zum Befehl javac, bei dem es sich um einen Java-Compilerbefehl handelt

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.

Informationen zur Ausführungsumgebung

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

Verwendung des Befehls javac Ausführungsbeispiel 1

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

Verwendung des Befehls javac Ausführungsbeispiel 2

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

Nachwort

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

Über Javac-Befehle
Über qiita_org-Befehle
Informationen zu Java-Befehlen
Über method.invoke
Über Kotlin
Über attr_accessor
Über Hinemos
Über die Vererbung
Über Docker
Über den Frühling ③
Über Polymorphismus
Über Optional
Über Hash
Über JitPack
Darüber ()
Über die Kapselung
Über JAVA_HOME
Über statische
Über Ausnahmen
Über den Umfang
[Maven] Über Maven