概要
Java学習時に、ソースコードを実行しようとしたらコンパイル時にエラーが発生したので、発生事象と解決方法をメモとして残します。
環境
openjdk version "11.0.18" 2023-01-17
OpenJDK Runtime Environment Temurin-11.0.18+10 (build 11.0.18+10)
OpenJDK 64-Bit Server VM Temurin-11.0.18+10 (build 11.0.18+10, mixed mode)
ソースコード
class Sample1_03_1 {
public static void main (String[] args) {
System.out.println("山田 太郎");
}
}
発生事象
上記のソースコードをコンパイルしようとすると以下のエラーが出ました。
C:\WorkSpace>javac Sample1_03_1.java
Sample1_03_1.java:3: �G���[: ���̕���(0x80)�́A�G���R�[�f�B���Owindows-31j�Ƀ}�b�v�ł��܂���
System.out.println("山田�?太�?");
^
Sample1_03_1.java:3: �G���[: ���̕���(0x8E)�́A�G���R�[�f�B���Owindows-31j�Ƀ}�b�v�ł��܂���
System.out.println("山田�?太�?");
^
�G���[2��
(山田 太郎)の箇所が半角文字("Taro Yamada")だと正常に出力されるため、ソースコードのエラーではないと考えました。
全角文字を出力しようとエラーが起こります。
解決方法
調べてみるとどうやらエンコードの問題みたいで、コンパイル時に下記のコマンドをたたくことで正常に動作しました。
javac -encoding UTF-8 Sample1_03_1.java
おわりに
意外なところでつまずきました。
エンコーディングを毎回明記することを忘れずにしていきます。