Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】

Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】




こんにちは。ネットショップコンサルタントの「たぶ」(@yusuke_tanaka34)です。

今日は『Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】』をご紹介していこうと思います!

今回の記事は、

  • Javaの勉強をしている方
  • Macのターミナルを使っている方
  • スッキリわかるJava入門を読んでいる方

におすすめです!

最近、「スッキリわかるJava入門」を読みながら、Javaの勉強をしています。

Javaの勉強を進めていると、P230の「パッケージを利用する」で、サンプルコードを打ち込んだところ、コンパイルエラーが出ました。

たぶ
コンパイルエラーが出てるんだけど、エラーが文字化けして読めないんですけど…

ただでさえ、コンパイルエラーが出ているのに、文字化けまでしていたらまったく修正できないですよね。

僕、プログラミングをしているのですが、エラーメッセージがどうも苦手なんです。

日本語だったらいいのですが、英語のエラーメッセージが多いので…

その点、Javaのエラーメッセージは日本語で表示されるので、まだマシなんですけどね。

でも、今回は文字化けしているので、もちろん日本語で表示されず、英語ですらないわけです!(笑)

この記事に書いてある『Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】』を読めば、すぐにJavaで出たコンパイルエラーの文字化けを修正できちゃいます!

結論から先に言ってしまうと、Javaで使用する文字セットを指定することで、コンパイルエラーの文字化けを修正します。

コピペしてもらえれば簡単に修正できるので、サクッと文字化けを修正しちゃってくださいね!

それでは、実際に『Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】』を詳しく解説していきたいと思います。




Javaのコンパイルエラーが文字化けした流れ

Javaのコンパイルエラーが文字化けした流れ

スッキリわかるJava入門」の「P230 パッケージを利用する」に掲載されているサンプルコードを打ち込みました。

【Calc.java】

package calcapp.main;
public class Calc {
  public static void main (String[] args) {
    int a = 10;
    int b = 2;
    int total = CalcLogic.tasu(a, b);
    int delta = CalcLogic.hiku(a, b);
    System.out.println("足すと" + total + "、引くと" + delta );
  }
}

【CalcLogic.java】

package calcapp.logics;
public class CalcLogic {
  public static int tasu(int a, int b) {
    return (a + b);
  }
  public static int hiku(int a, int b) {
    return (a - b);
  }
}

出典:「スッキリわかるJava入門

そして、この2つのファイルをコンパイルしました。

javac Calc.java

すると、

Calc.java:6: ?V???{???????‚????܂???B
?V???{??: ?ϐ? CalcLogic
?ꏊ    : calcapp.main.Calc ?? ?N???X
		int total = CalcLogic.tasu(a, b);
		            ^
Calc.java:7: ?V???{???????‚????܂???B
?V???{??: ?ϐ? CalcLogic
?ꏊ    : calcapp.main.Calc ?? ?N???X
		int delta = CalcLogic.hiku(a, b);
		            ^
?G???[ 2 ??

とコンパイルエラーが出ました。

たぶ
ふむふむ。Calc.javaの6行目にコンパイルエラーがある… 読めないっ!!

ということで、Javaのコンパイルエラーが文字化けしてしまうことに気づいたのです。

なぜJavaのコンパイルエラーが文字化けしてしまうのでしょうか?

次は、Javaのコンパイルエラーが文字化けしてしまう原因を見ていきたいと思います。




Javaのコンパイルエラーが文字化けする原因

Javaのコンパイルエラーが文字化けする原因

「Java」は僕らがプログラミングした「○○.java」というファイルを一度コンパイルし、機械語に翻訳します。

その機械語を「JVM」という「Java仮想マシン」が読み込み、プログラムを実行します。

Javaが処理される仕組み

今回起きた、Javaのコンパイルエラーが文字化けする原因は、「Javaの文字コードとターミナルの文字コードが一致していないこと」

まずは、Javaで使用される文字コードを確認してみましょう。

【Main.java】

public class Main {
  public static void main(String[] args) {
    System.out.println(System.getProperty("file.encoding"));
  }
}

こちらのJavaファイルをコンパイルすると、

SJIS

と表示されます。文字コードが「Shift-JIS」になっています。

次に、ターミナルに

echo $LANG

と打ち込んで、Enterキーを押すと、

ja_JP.utf8

と表示されます。こちらは文字コードが「UTF-8」になっています。

これは、Javaで使用する文字コードが「Shift-JIS」になっているのに、Windowsの言語設定が「UTF-8」なっているということ。

これが「Javaのコンパイルエラーが文字化けする原因」です。

それでは、実際に「Javaでコンパイルエラーの文字化けを修正する方法」を見ていきましょう。




Javaでコンパイルエラーの文字化けを修正する方法

Javaでコンパイルエラーの文字化けを修正する方法

それでは、実際に「Javaでコンパイルエラーの文字化けを修正する方法」を解説していきますね!

まずはJavaのバージョンを確認してみましょう。

java -version

と打ち込んでEnterキーを押すと、

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build ○.○.○_○-○-○)
Java HotSpot(TM) 64-Bit Server VM (build ○.○-○-○, mixed mode)

ということで、僕のiMacに入っているJavaは「1.6.0_65」でした。

次に、「.bash_profile」というファイルがあるかどうかを確認します。

ls -la

と打ち込んでEnterキーを押すと、ファイルの一覧が表示されます。

「ls」はファイルやディレクトリ(パソコンで言うところのフォルダ)の情報を表示するコマンド。

「-la」は「ls」コマンドのオプションで、ファイルの詳細もすべて表示してくれます。

total 1904
(略)
○○○○○○○○○ ○ ○○ staff ○○ ○○ ○○ ○○○○ .bash_profile
(略)

といった感じで表示されます。

僕のパソコンには1904個のファイルがあり、その中に「.bash_profile」というファイルが入っていました。

「.bash_profile」とは、ターミナルを起動した時に読み込まれる設定ファイルのこと。

この「.bash_profile」に、『Javaの言語は「UTF-8」にするよ。』という指示を与え、文字化けを修正します。

それでは、今回は「.bash_profile」ファイルがなかったことを想定して、「.bash_profile」ファイルを作成していきましょう。

touch .bash_profile

と打ち込んでEnterキーを押すと、「.bash_profile」ファイルが作成されます。

「touch」とは、新しいファイルを作成するコマンドです。

次に、

vi .bash_profile

と打ち込んでEnterキーを押します。

すると、以下のような画面になります。

vi画面

「vi」とは、パソコンに元々入っているテキストエディタのこと。

「メモ帳」や「さくらエディタ」などと同じようなテキストエディタですが、アイコンなどがなく、すべてキーボードで操作するテキストエディタです。

「vi」と打ち込むだけで、簡単に起動できます。

「.bash_profile」が開いたら、iと打ち込んでください。

そうすると「INSERTモード」になります。

「INSERTモード」とは、コマンドを打ち込めるモードです。

「INSERTモード」になったら、

【.bash_profile】

alias javac='javac -J-Dfile.encoding=UTF-8'
alias java='java -Dfile.encoding=UTF-8'

と打ち込みます。そのままコピペして大丈夫です。

「alias」とは、コマンドを別名で登録するためのコマンド。

「file.encoding=UTF-8」の部分で、ファイルの文字コードを「UTF-8」に指定しています。

上記のコマンドを打ち込んだら、escキーを押してください。

そうすると「INSERTモード」が解除されます。

「INSERTモード」が解除されたら、

:wq

と打ち込んでください。

「:wq」とは、「保存して終了する」というコマンドです。

「.bash_profile」が閉じ、普通のターミナルの画面に戻りますので、

source .bash_profile

と打ち込んでEnterキーを押して下さい。

「source」とは、作成したファイルを実行(反映)するコマンド。

先ほど作成した「.bash_profile」ファイルを実行します。

これで、Javaのコンパイルエラーの文字化けを修正できました。

それでは、もう一度コンパイルしてみましょう。

javac Calc.java

と打ち込むと、

Calc.java:6: シンボルを見つけられません。
シンボル: 変数 CalcLogic
場所    : calcapp.main.Calc の クラス
		int total = CalcLogic.tasu(a, b);
		            ^
Calc.java:7: シンボルを見つけられません。
シンボル: 変数 CalcLogic
場所    : calcapp.main.Calc の クラス
		int delta = CalcLogic.hiku(a, b);
		            ^
エラー 2 個

とちゃんと日本語で表示されました。

これで「Calc.java」の7行目・8行目に「シンボルを見つけられない」というエラーが出ていることが分かりました。

たぶ
やったー!これでコンパイルエラーの修正ができるぞー!

以上が、「Javaでコンパイルエラーの文字化けを修正する方法」です。

お疲れ様でした!




まとめ

今回は『Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】』というテーマでお送りしてきました。

「Javaでコンパイルエラーが文字化けする原因」は、

Javaの文字コードとターミナルの文字コードが一致していないこと

でした。

「Javaでコンパイルエラーの文字化けを修正する方法」は、

  1. Javaの文字コードを確認
  2. ターミナルの文字コードを確認
  3. 「.bash_profile」ファイルの作成
  4. 「.bash_profile」で文字コードの指定

という流れでした。

「.bash_profile」で文字コードの指定方法は、

  1. vi .bash_profile
  2. i
  3. alias javac=’javac -J-Dfile.encoding=UTF-8′
    alias java=’java -Dfile.encoding=UTF-8′
  4. esc
  5. :wq
  6. source .bash_profile
  7. jobs

という順番でコマンドを打ち込んでいくと、指定することができました。

以上が『Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】』でした。

今回は「スッキリわかるJava入門」に沿って解説を進めてきました。

Javaやターミナルについて、他にも分からないことがありましたら、お問い合わせまでご連絡ください。

以上、ネットショップコンサルタントの「たぶ」でした。

こちらの記事もおすすめです。

Javaのpackage文でエラーが出てコンパイルできない時の修正方法

Javaのpackage文でエラーが出てコンパイルできない時の修正方法

2019年10月12日
ロリポップのphpMyAdminでMySQLの文字化けを修正する方法

ロリポップのphpMyAdminでMySQLの文字化けを修正する方法

2019年9月12日
第1階層がリンクではないドロップダウンメニューを作る方法

第1階層がリンクではないドロップダウンメニューを作る方法

2018年12月20日
スムーススクロールが「トップへ戻る」だけ効かない時の修正方法

スムーススクロールが「トップへ戻る」だけ効かない時の修正方法

2018年10月20日
グローバルナビなど横並びにしたリスト要素が段々にずれる現象を直す方法【CSS】

グローバルナビなど横並びにしたリスト要素が段々にずれる現象を直す方法【CSS】

2018年10月17日

【プログラミングならTechAcademy】


【どこでも受けられるTECH::CAMP】


ABOUTこの記事をかいた人

通称:たぶ
30代中頃、東京都在住。
ネットショップコンサルタント。
EC-CUBE、ASP、ショッピングモールなど各種ネットショップでの売上UPが得意。
アパレル系のネットショップの売上を4倍に増やし、月商900万円、年商1億円を達成。
ネットショップ運営の数なら誰にも負けません。
最近、ポメラニアンが気になる。
炊きたての白米が何もよりも好き。