私は、Javaのプロジェクトに取り組んでいると私は3つのプロジェクトを持っている:依存関係をbashファイルに追加するには?
-banking
-logger
-testframework
銀行は ロガーは、ユーザーのアクションを記録するために、銀行で使用されている、アカウントを管理するために使用され、 testframeworkはテスト
のためであります私はcompile.shとlaunch_banking.shに取り組んでいます、これは私の問題です: 私はlaunch_banking.shを起動したとき、私はこれらのエラーを取得:
[email protected]:~/ProjetPOO3A$ bash launch_banking.sh
Exception in thread "main" java.lang.NoClassDefFoundError: logger/LoggerFactory
at banking.Launcher.main(Launcher.java:17)
Caused by: java.lang.ClassNotFoundException: logger.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
[email protected]:~/ProjetPOO3A$
これはlaunch_banking.shの内容です:
java -classpath banking/bin banking.Launcher;
これは私が私のプロジェクト(compile.sh)をコンパイルする方法である:
javac -d logger/bin $(find logger/src -name *.java);
javac -classpath logger/bin -d banking/bin $(find banking/src -name *.java);
私はUbuntuの下で働いていると私は私のprojetcをコーディングする日食使用します。 私はprojetcをコンパイルして起動するためにバッチファイルを使用しなければなりません。
私はいくつかの調査を行いました。依存関係を使用する必要があると思われますが、その内容はわかりません。
これは、プロジェクトの構造である:別のディレクトリにあるクラスを使用するためには
+--_logger
| +-- _src
| | +-- _logger
| | +-- (.java)
| +-- _bin
+-- _testframework
| +-- _src
| | +-- _test
| | +-- (.java)
| +-- _bin
+-- _banking
| +-- _src
| | +-- _banking
| | +-- (*.java)
| +-- _bin
+-- compile.sh
+-- test.sh
+-- launch_banking.sh
+-- README.md
"強制的にバッチファイルを使用する"?私たちが同じページにいることを確認するだけで、MavenやGradleのようなツールがこの問題を処理するように特別に設計されていることを認識していますか? –
@OliverCharlesworth先生は、私たちにバッチファイルの使用を依頼しましたが、他のツールは使用しませんでした。基本的に、どんなubuntuコンピュータでも、コンソールにプログラムを起動するためには、bash launch_banking.shを実行するだけです。 –
しかし、それは人生を狂って痛みを伴うものにしてくれるでしょう:/(そして、あなたの先生がこのクラスを教えるべきではないことを強く暗示しています...)問題はあなただけが実行時ではなく、コンパイルのためのクラスパス。 –