初めに
Javaの勉強を始めてみました。VS Codeを使っているのですが、デフォルトで開くターミナルがpower shellであることに気付かずネットで調べたコマンドが動かないよおおお???となっていました。(コマンドプロンプトとpower shellで動くコマンドが微妙に違うため)
もっと言うと意地を張らずにJavaはShift-JISで書いたほうがいいと思いますが、気になってしまったので少し調べてみました。
文字化け対策(windows)
windowsのコマンドプロンプトでJavaを実行すると文字化けした。
これは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
パッケージ名を付けた場合は、パッケージ名を指定してルートディレクトリでコマンドを実行する。
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
とオプション指定なしで実行すればいいらしい。
参考