質問: ### 前提・実現したいこと vscodeでjavaをコンパイルしてclassファイルの作成 ### 発生している問題・エラーメッセージ ``` vscodeでデバックするとclassファイルが作成されない コマンドプロンプトでコンパイルすると作成されますが、 vscodeでコメント文を日本語で書くとコマンドプロンプトでエラーがでます。 D:\java\test>javac Test.java Test.java:5: エラー: この文字(0x8B)は、エンコーディングwindows-31jにマップできません System.out.println("Hello World");//縺奇ス? ``` ### 該当のソースコード ``` public class Test { public static void main(String[] args) { System.out.println("Hello World");//日本語 } } ``` ### 試したこと コメント文を書かずにコンパイルをしてみたり コメント文を半角だけで書くことをしました。 ### 補足情報(FW/ツールのバージョンなど) vscode jdk12
回答: > > vscodeでデバックするとclassファイルが作成されない > > > ~~「フォルダーを開く」の操作を行わずにJavaソースコードの実行を行った場合、classファイルはWindowsの一時フォルダーの下に作成されています。classファイルをソースコードと同じ場所に出力したいのならば、「フォルダーを開く」で作業フォルダーを開いた上でデバッグや実行を行ってみましょう。~~ (4/27 8:40訂正) あれ?フォルダー開いて実行してもclassファイルは出力されないですね(環境変数TEMPで指定されたフォルダー配下の深いところに作られている)。この部分は私の勘違いだったので取り消します。 > > vscodeでコメント文を日本語で書くとコマンドプロンプトでエラーがでます。 > > > VSCodeの右下の方に、現在編集中のソースコードの文字コードの情報が表示された箇所がありますが、UTF-8になっているのではないでしょうか。この状態でコマンドプロンプト上でコンパイルを通すのであれば、`javac -encoding UTF-8 Test.java`としましょう。