こんにちは。ネットショップコンサルタントの「たぶ」(@yusuke_tanaka34)です。
今日は『Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】』をご紹介していこうと思います!
今回の記事は、
- Javaの勉強をしている方
- Macのターミナルを使っている方
- スッキリわかるJava入門を読んでいる方
におすすめです!
最近、「スッキリわかるJava入門」を読みながら、Javaの勉強をしています。
Javaの勉強を進めていると、P230の「パッケージを利用する」で、サンプルコードを打ち込んだところ、コンパイルエラーが出ました。
ただでさえ、コンパイルエラーが出ているのに、文字化けまでしていたらまったく修正できないですよね。
僕、プログラミングをしているのですが、エラーメッセージがどうも苦手なんです。
日本語だったらいいのですが、英語のエラーメッセージが多いので…
その点、Javaのエラーメッセージは日本語で表示されるので、まだマシなんですけどね。
でも、今回は文字化けしているので、もちろん日本語で表示されず、英語ですらないわけです!(笑)
この記事に書いてある『Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】』を読めば、すぐにJavaで出たコンパイルエラーの文字化けを修正できちゃいます!
結論から先に言ってしまうと、Javaで使用する文字セットを指定することで、コンパイルエラーの文字化けを修正します。
コピペしてもらえれば簡単に修正できるので、サクッと文字化けを修正しちゃってくださいね!
それでは、実際に『Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】』を詳しく解説していきたいと思います。
スポンサーリンク
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); } }
そして、この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 ??
とコンパイルエラーが出ました。
ということで、Javaのコンパイルエラーが文字化けしてしまうことに気づいたのです。
なぜJavaのコンパイルエラーが文字化けしてしまうのでしょうか?
次は、Javaのコンパイルエラーが文字化けしてしまう原因を見ていきたいと思います。
スポンサーリンク
Javaのコンパイルエラーが文字化けする原因
「Java」は僕らがプログラミングした「○○.java」というファイルを一度コンパイルし、機械語に翻訳します。
その機械語を「JVM」という「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 -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」と打ち込むだけで、簡単に起動できます。
「.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でコンパイルエラーの文字化けを修正する方法」は、
- Javaの文字コードを確認
- ターミナルの文字コードを確認
- 「.bash_profile」ファイルの作成
- 「.bash_profile」で文字コードの指定
という流れでした。
「.bash_profile」で文字コードの指定方法は、
- vi .bash_profile
- i
- alias javac=’javac -J-Dfile.encoding=UTF-8′
alias java=’java -Dfile.encoding=UTF-8′ - esc
- :wq
- source .bash_profile
- jobs
という順番でコマンドを打ち込んでいくと、指定することができました。
以上が『Javaでコンパイルエラーの文字化けを修正する方法【Macの場合】』でした。
今回は「スッキリわかるJava入門」に沿って解説を進めてきました。
Javaやターミナルについて、他にも分からないことがありましたら、お問い合わせまでご連絡ください。
以上、ネットショップコンサルタントの「たぶ」でした。
こちらの記事もおすすめです。