[[情報理工・情報通信 プログラミングA(前半)]] [[環境インストール]] *VSCode上でのデバッガ(Debugger for Java)の使い方 [#va327e47] **準備編 - デバッグ用拡張機能のインストール [#webd401c] 1) 画面の左側に5つのアイコンが並んでいるはずなので、 一番下のアイコンをクリックして拡張機能の管理画面を開く (ショートカット: &color(slateblue){ctrl + shift + x};) 2) 開いた画面の上部にある検索バーに &color(chocolate){java pack}; と入力し、 検索結果から &color(chocolate){Java Extension Pack}; という項目をクリック 3) インストールボタンをクリック 4) しばらく待つと再読み込みボタンが出てくるので、クリックしてインストール完了 **実行編 [#p134d550] 1) ソースコードを保存するための空フォルダを開く (ショートカット: &color(slateblue){ctrl + k ctrl + o};) 2) メニューバーから &color(chocolate){ファイル}; -> &color(chocolate){新規ファイル}; を開いてjavaファイルを作る (ショートカット: &color(slateblue){ctrl + n};) - 左側のエクスプローラーにマウスを持って行くとフォルダ名の横にアイコンが表示されるので、そこから&color(chocolate){新しいファイル};をクリックしてもOK 3) メニューバーから&color(chocolate){デバッグ}; -> &color(chocolate){構成の追加};をクリックし、表示されたバーで&color(chocolate){Java};を選択 4) &color(chocolate){launch.json};というファイルが作られたのを確認 - このファイルはデバッグの設定が書かれたもの - このファイルがないまま後述するデバッグの実行をした場合、自動的に&color(chocolate){launch.json};が生成される 5) メニューバーから&color(chocolate){デバッグ}; -> &color(chocolate){デバッグの開始};をクリックするとデバッグモードでプログラムが実行される (ショートカット: &color(slateblue){F5};) ***標準入力を使うプログラムをデバッグするときの注意 [#qc453f69] 自動生成された&color(chocolate){launch.json};の設定では標準入力が使えないため、 標準入力を利用するプログラムをデバッグする際には &color(chocolate){launch.json};を編集する必要がある。 具体的には "console": "internalConsole" となっている箇所を "console": "integratedTerminal" に変更することで、下画面の&color(chocolate){ターミナル};上で標準入力を使った対話的なプログラムの実行ができるようになる。 *Tips [#zd520b70] **同じフォルダ内で複数のjavaファイルがある場合に、デバッグする対象を切り替えたい [#xdf83e15] &color(chocolate){launch.json};内の&color(chocolate){mainClass};という項目を、デバッグしたいmain関数が含まれるクラス名(≒ファイル名)に書き換える。 例) &color(chocolate){Java};フォルダ以下に&color(chocolate){Hello.java};を作ってデバッグした後、同じフォルダ内で&color(chocolate){Calc.java};を作成・デバッグしたい場合~ (どちらのファイルにもファイル名と同名のクラスが定義されており、さらにそのクラス内でmainメソッドを定義しているものとする) &color(chocolate){launch.json};を開き、 "mainClass": "Main", となっている箇所を "mainClass": "Calc", に書き換える。 その後、メニューバーから&color(chocolate){デバッグ}; -> &color(chocolate){デバッグの開始}; をクリックすると、 &color(chocolate){Calc.java};内のmain関数が実行される。 **ファイル名を変えたらデバッグができなくなった(could not find or load class ~ と表示される) [#gf575124] まずは、[[これ>#mff32430]]を試して解決しないかを確かめる。 それでも解決しない場合は、以下の2つのどちらかを試す。 *** A.簡単な修正方法 [#p4cbe75f] 変更前のファイル名で新しく空ファイルを作りなおす。 *** B.複雑な修正方法 [#a4b7c08b] 1) &color(chocolate){launch.json};内で&color(chocolate){console};: &color(chocolate){integratedTerminal};を指定してわざとデバッグに失敗する。 1) &color(chocolate){launch.json};内で&color(chocolate){console};: &color(chocolate){integratedTerminal};を指定した後、デバッグを実行して失敗させる。 2) ターミナルに表示されているコマンドから、 &color(chocolate){-cp}; の後に続く &color(chocolate){C:\...\bin};と表示されているパスを 末尾の ''\binの部分を除いて'' コピーする。 2) メニューバーの&color(chocolate){ファイル}; -> &color(chocolate){ファイルを開く}; から、先ほどコピーしたパスに移動して、 &color(chocolate){.project};というファイルを開く。 3) 変更前のファイル名が書かれている&color(chocolate){link};タグを探し、削除する。 例) &color(chocolate){Main.java}; を &color(chocolate){Calc.java};にリネームしてしまい、デバッグに失敗した場合 <linkedResources> <link> <name>src\Calc.java</name> <type>1</type> <location>(省略)\Calc.java</location> </link> <link> <name>src\Main.java</name> <type>1</type> <location>(省略)\Main.java</location> </link> </linkedResources> となっているはずなので、&color(chocolate){src\Main.java};が含まれている&color(chocolate){link};タグを削除する。 <linkedResources> <link> <name>src\Calc.java</name> <type>1</type> <location>(省略)\Calc.java</location> </link> </linkedResources> A, Bのどちらかを実行することで、正常にデバッグが可能になる。 それでも解決しない場合は、TAに相談すること。