2017-11-26 10 views
0

私は、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 
+1

"強制的にバッチファイルを使用する"?私たちが同じページにいることを確認するだけで、MavenやGradleのようなツールがこの問題を処理するように特別に設計されていることを認識していますか? –

+0

@OliverCharlesworth先生は、私たちにバッチファイルの使用を依頼しましたが、他のツールは使用しませんでした。基本的に、どんなubuntuコンピュータでも、コンソールにプログラムを起動するためには、bash launch_banking.shを実行するだけです。 –

+2

しかし、それは人生を狂って痛みを伴うものにしてくれるでしょう:/(そして、あなたの先生がこのクラスを教えるべきではないことを強く暗示しています...)問題はあなただけが実行時ではなく、コンパイルのためのクラスパス。 –

答えて

1

、あなたはクラスパスにこれらを定義する必要がありますよう:

#!/usr/bin/env bash 
java -classpath logger/bin:banking/bin banking.Launcher 

これは教えてくれますクラスのロガーANDバンキングディレクトリを検索するプログラム

関連する問題