前提・実現したいこと
引数で指定したファイルが存在するか確認し、
結果によって処理を分岐させるプログラムを書いています。
ファイルの存在確認クラスと、分岐が書かれたクラスは別物なので、存在確認クラスを参照したいけどうまくいきません。
原因を教えていただけないでしょうか。
使ってるツールは
- java11
- vscode
- openjdk
です
発生している問題・エラーメッセージ
/Users/user/Documents/java_project/project/src/app/Input.java:28: エラー: シンボルを見つけられません Boolean test = CheckFileExists.checkFileExists("input", input_data); ^ シンボル: 変数 CheckFileExists 場所: クラス Input
該当のソースコード
CheckFileExists
1public class CheckFileExists { 2 public static Boolean checkFileExists(String directory, String file_name) { 3 //処理省略 4 return file.exists(); 5 } 6}
Input
1public class Input { 2 public static void main(String args[]) { 3 input(args[0]); 4 } 5 6 private static void input(String input_data) { 7 Boolean is_exists = CheckFileExists.checkFileExists("input", input_data); 8 if (is_exists) { 9 System.out.println("存在します"); 10 } else { 11 System.out.println("存在しません"); 12 } 13 }
試したこと
やったこと
- vscodeでcreate java projectを実行
- コンパイルしてInput.classとCheckFileExists.classを作成しました
- ターミナルでprojectディレクトリにて $ java Input hoge を実行
エラー文
エラー: メイン・クラスInputを検出およびロードできませんでした 原因: java.lang.NoClassDefFoundError: app/Input (wrong name: Input)
.classpathの内容
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> <classpathentry kind="src" path="src"/> <classpathentry kind="output" path="bin"/> <classpathentry kind="lib" path="/Library/Java/Extensions/informa-0.7.0-a2.jar"/> </classpath>
ツリー構造
. ├── bin │ └── app │ ├── CheckFileExists.class │ ├── Input.class ├── input ├── output └── src └── app ├── CheckFileExists.class ├── CheckFileExists.java ├── Input.class └── Input.java
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー