前提・実現したいこと
VScodeで作成中のJavaプログラミングのデバッグを行います。
標準入力(Scanner)を必要とするプログラムで、テキストファイルをデバッグ時にコマンドライン引数から渡したいです。
発生している問題・エラーメッセージ
launch.jsonファイルを編集して、いくつかのString型とテキストファイルを渡したいのですがやり方がわかりません。
該当のソースコード
launch.jsonファイルの中身です。
{ "version": "0.2.0", "configurations": [ { "type": "java", "name": "Launch MultiFilter", "request": "launch", "mainClass": "MultiFilter", "projectName": "6th_a0e70c5f", "args": ["number","rev","sample.txt"], "console": "integratedTerminal", "stopOnEntry": false, "encoding": "UTF-8", } ] }
実際に標準入力を受け取る箇所はこちらです。
static final void processAllLines() { Scanner sc = new Scanner(System.in); while (sc.hasNextLine()) { String line = sc.nextLine(); System.out.println(line); } sc.close(); }
試したこと
launch.jsonの編集で以下のようなものを試しましたがすべてString型でargs[]に入ってしまいscannerで読み込むことができません。
"args": ["number","rev","<" "sample.txt"],
"args": ["number","rev","${workspaceFolder}/sample.txt"],
"args": ["number","rev","<","${workspaceFolder}/sample.txt"],
また、launch.jsonを
"console": "externalTerminal",
とし、ターミナルから受け取ろうとしましたが、ターミナルの入力からテキストファイルを指定することはできません。
プログラムを実際に実行させるときは、以下のように入力してテキストファイルを渡します。
java MultiFilter number rev < sample.txt
補足情報(FW/ツールのバージョンなど)
VScodeのバージョン
バージョン: 1.52.1
OS: Windows_NT x64 10.0.18363
Javaのバージョン
java version "12.0.1"
あなたの回答
tips
プレビュー