LoginSignup
2
1

More than 1 year has passed since last update.

Javaコンパイル・実行時の文字化け対策(windows10)

Posted at

初めに

Javaの勉強を始めてみました。VS Codeを使っているのですが、デフォルトで開くターミナルがpower shellであることに気付かずネットで調べたコマンドが動かないよおおお???となっていました。(コマンドプロンプトとpower shellで動くコマンドが微妙に違うため)
もっと言うと意地を張らずにJavaはShift-JISで書いたほうがいいと思いますが、気になってしまったので少し調べてみました。

文字化け対策(windows)

windowsのコマンドプロンプトでJavaを実行すると文字化けした。
image.png

これはJavaファイルをUTF-8で作成したが、コマンドプロンプト(windows)が使用している文字コードはshift-jisであることが原因。
UTF-8を画面に出力するためには以下のコマンドを実行すればよい。
(65001はUTF-8を表す)

chcp 65001

shift-jisに変更するときは以下のようにする。

chcp 932

コンパイルと実行

コンパイル・実行コマンドのの基本

javacコマンドでコンパイルできる
コンパイルするとclassファイルができる

javac Hello.java  

コンパイル後、クラス名(ファイル名ではない)を指定してjavaコマンドを実行すると、Javaプログラムを実行できる。

java Hello

パッケージ名を付けた場合は、パッケージ名を指定してルートディレクトリでコマンドを実行する。

chapter04\Sample1.java
package chapter04;

public class Sample1 {
    public static void main(String[] args) {
        System.out.println(1 + 2);
    }
}
java chapter04.Sample1

shift-jis以外で記載されたファイルを実行する

ここでは~.javaをUTF-8で保存した場合を考える。
コンパイル、実行にはそれぞれオプションで文字コードを指定する必要がある。

コンパイル

javac -encoding utf-8 .\chapter06\Sample.java

UTF-8の文字コードを使用して実行(ただしコマンドプロンプトでは実行できるが、powershellではこのオプションの記述では動かない)

java -Dfile.encoding=utf-8 chapter06.Sample

そもそもwindowsではコマンドプロンプト、power shell問わず基本的にJavaはShift-JISとして出力されるらしいので、chcp 932を実行してShift-JISを表示できるようにした後java Sampleとオプション指定なしで実行すればいいらしい。
参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1