はじめに
TeraPadで書いたコードを、コマンドプロンプトでコンパイルしたらエラーだらけになった。
他のテキストエディタで書いたらちゃんと動いたので、そのまま放置している。
備忘録としてここに残しておこうと思い、記事にする。
実行環境
・Java11
JDK(Java Development Kit)のみ、eclipseは導入していない
・TeraPad
有名な無料テキストエディタ。
Windows10のメモ帳でも同様の現象が起きていた。
・Windows10
コマンドプロンプトでコードがちゃんと動くことを確認。
起きていた問題
TeraPadで作ったjavaファイルをコンパイルするとき、エラーを吐いてclassファイルが生成されない。
出力ファイル形式の指定ではUTF-8に設定していたはずだが、うまくいかない。
helloWorldのコンパイルから実行まで,Terapad版
C:Users>cdC:JavaSampleC:JavaSample>javachelloWorld.javahelloWorld.java:1:エラー:この文字(0xEF)は、エンコーディングwindows-31jにマップできません?サソclasshelloWorld^helloWorld.java:1:エラー:class、interfaceまたはenumがありません?サソclasshelloWorld^helloWorld.java:3:エラー:class、interfaceまたはenumがありませんpublicstaticvoidmain(String[]args)^helloWorld.java:6:エラー:class、interfaceまたはenumがありません}^エラー4個
ネットで検索をかけたところ、エンコード設定をUTF-8と記述すればコンパイルできるとあったが、結果は以下の通り。
helloWorldのコンパイルから実行まで,Terapad2回目
C:Users>cdC:JavaSampleC:JavaSample>javac-encodingUTF-8helloWorld.javahelloWorld.java:1:エラー:'\ufeff'は不正な文字です?classhelloWorld^helloWorld.java:1:エラー:class、interfaceまたはenumがありません?classhelloWorld^helloWorld.java:3:エラー:class、interfaceまたはenumがありませんpublicstaticvoidmain(String[]args)^helloWorld.java:6:エラー:class、interfaceまたはenumがありません}^エラー4個
現在(2020/2/25)
テキストエディタをBracketsとSublimeText3の両方入れて、それぞれでファイルを作ってみた。
結果、改善されて上手くコンパイルしてくれるようになった。
また、メモ帳で書いたコードでもちゃんと動くことを確認した。
helloWorldのコンパイルから実行まで,別テキストエディタの場合
C:Users>cdC:JavaSampleC:JavaSample>javachelloWorld.javaC:JavaSample>javahelloWorldHello,World!
感想
なぜTeraPadに限ってこのような現象が起きたか分からない。
TeraPadの設定だが、PHPに関する書籍の指示に従って各種設定をして使っていた。
「TeraPadのUTF-8化」のページで初期文字コード・保存文字コードをUTF-8Nに設定した。
何度か読み返してみてもわからなかったし、ほかのテキストエディタなら問題がないので、現在は放置している。