ソースファイルのエンコーディング名を指定してコンパイル

広告

Javaで環境毎に設定されているエンコーディングと異なる文字コードでソースコードを保存した場合、コンパイル時にソースコードの文字コードを指定する必要があります。

文字コードを指定するには「-encoding」オプションを使います。

javac -encoding エンコーディング名 ソースファイル名

エンコーディング名にはソースコードを保存した文字コードを指定して下さい。

JDK6の場合に指定可能な文字コードは「サポートされているエンコーディング」にて参照できます。ここでは日本語環境で多く使われるエンコーディングを一部紹介します。

java.nio API用java.io/java.lang API用説明
UTF-8UTF88 ビット Unicode (UCS) Transformation Format
EUC-JPEUC_JPJISX 0201、0208、0212、EUC エンコーディング、日本語
ISO-2022-JPISO2022JPISO 2022 形式の JIS X 0201、0208、日本語
Shift_JISSJISShift-JIS、日本語
windows-31jMS932Windows 日本語

文字コード毎に二通りの記述方法があります。正式な名前は1列目のようですが2列目に記載されているものでも構いません。

例えばソースファイルを文字コードとしてUTF-8を使って保存した場合、次のようにコンパイルを行います。

javac -encoding UTF-8 sample.java

他の文字コードの場合も同様です。

サンプル

では実際に試してみます。

JSample2_1.java

class JSample2_1{
  public static void main(String args[]){
    System.out.println("今日もいいお天気ですね");
  }
}

上記を文字コードにUTF-8を指定して保存します。そして次のようにコンパイルを行います。

javac -encoding UTF-8 JSample2_1.java

p2-1

前のページでは警告が表示されましたが、今回は何も表示されるコンパイルが成功しました。では実行してみます。

p2-2

実行も正常に行われました。

( Written by Tatsuo Ikura )