Javaの文字コードを変更。またはIntelliJのGlassFishの起動の話。

Kotlinでサーバサイドをやりたいと常々思っているのだけれど、全然Javaのサーバサイドの知識がないので勉強しています、最近。独習Java サーバサイド編をKindleで買って読んでいるところをツイートしていたら、情報が古すぎるという指摘もありましたが…。
TomcatはとりあえずJavaEEの機能を活かせないということだったので、GlassFishをインストールしてみました。

GlassFishのインストールはこちらから。

GlassFishをインストールした後、CodezineのGlassFishからアプローチするJava入門の記事をやりながら、GlassFishについて勉強していました(記事自体はやや古いけれど大丈夫そうな感じ)。ただ、自分はIntelliJ IDEA Ultimateを持っているので、IntelliJを使って作業しています。

コンソールからGlassFishを起動した場合は普通に動いていたのですが、なぜかIntelliJからGlassFishを起動しようとしたら動かない…。エラーでこけてしまいます。コンソールで起動しておいたらIntelliJから繋がるけれど、終了したのちに再度IntelliJからGlassFishを起動できない。おかしいなーと思っていたところ、エラーメッセージが????????だらけの中にASCIIという文字があったので、文字コードに問題があるのかなと思いました。

IntelliJのGlassFishのVM optionsに

-Dfile.encoding=UTF-8

を書いたら、動くようになりました。
それにしてもこれを毎回書くのか?と思っていたら、


という助言を頂きました。そんな話があったのか…。
ぐぐったところ、まさにその問題をとりあげている記事を発見

Javaの文字コードはデフォルトだとSJISらしいです(なぜ…)。起動時にJavaの文字コードをUTF-8に変更してやる処理を加えたらええんじゃ!ということだったので、やってみました。

sudo vi /etc/launchd.conf

で、このファイルに以下を追加。

setenv JAVA_TOOL_OPTIONS -Dfile.encoding=UTF-8

この後、マシンを再起動すればOK(ログアウトでもいいかも)。
java -hで確認して、文字コードが変わっている事を確認できればOK。
その後、IntelliJ IDEA上から、VM optionsのパラメータを削除してからGlassFishを起動したら、ちゃんと起動しました。
文字コードはやっぱりUTF-8がいいですね!!


カテゴリー Java | タグ | パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です