質問: いつもお世話になっています。Java初心者でただいま勉強中です。Javaのコメント文について質問させていただきます。Javaでコメント文を有効にシたいと思い、ネットで調べたんですが、乗ってるコマンドを色々打ち続けた結果、javac ファイル名でコンパイル、java class名で実行できなくなってしまいました。 以下がエラー文です。 ``` Sample1.java:7: ?x??:???̕????́A?G???R?[?f?B???O SJIS ?Ƀ}?b?v?ł??܂???B System.out.println("変数の値は" + num +"です???"); ^ Sample1.java:7: ?x??:???̕????́A?G???R?[?f?B???O SJIS ?Ƀ}?b?v?ł??܂???B System.out.println("変数の値は" + num +"です???"); ^ Sample1.java:3: ??????܂???B public static void main(String[], args) ^ Sample1.java:3: ??????܂???B public static void main(String[], args) ^ ?G???[ 2 ?? ?x?? 2 ?? ``` 以下が実行したコマンドです。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/15bae1a55e0889d785bdf4fa253dbc1a.png) ![![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/d70341bd1b47f3b38f29a893b73b63ba.png)](fabfb922b2f44c99081939c7fa877b08.png) リンク内容 リンク内容 文字のエンコーディングが怪しいと思うんですが、実行した命令の消去の仕方が分からなくて、どうすればいいか分かりません。すみませんがよろしくお願いします。
回答: 質問意図はコメントを有効にするというより、javacのメッセージの文字化けを解消することだと思います。質問者さんの環境を推測してみました。 1. Machintoshである。 2. javaのバージョンはjava7以降である。 3. terminalのロケールが日本語、エンコーディングがUTF-8になっている。 4. ソースファイルのエンコーディングはUTF-8である。 5. LANGがUTF-8でない(例えばCになっている)。 もしそうだとすると、環境変数LANGが原因だと思います。 LANG=ja_JP.UTF-8 このようになっていればjava, javacともに文字化けしないのでは? そう思った根拠は3年前の記事です。質問者さんが参考にした6年前の記事は現在では適切でないのだと思いました。 java7のリリースは2011年ですが、6年前の記事はjava6->java7の境目近くの記事です。java6まではMachintosh上のJavaは-Dfile.encodingでエンコーディングを決定していたのでこの記事のとおりで解決できたのだと思いますが、3年前の記事に「java7からjava/javacはLANGによってエンコーディングを決定するようになった」とありますので現在はLANGが優先されていると推測しました。 推測により回答しましたので間違っている可能性があります。最初に示したような「環境設定」をなるべく明記することでより確実な回答がつきやすくなるでしょう。