2011-02-04 10 views
1

私はJavaで新しいです、私はこの問題のために何時間も費やしてきました。私を助けることができる人に本当に感謝します。javaコンパイルとランタイムライブラリ

ここに問題があります。

  1. マイプロジェクト、PROJECTAは、コンパイルしたライブラリの 束を必要とすると言うが、私は LibraryB.jarと呼ばれるライブラリを必要としないと思う 。そのため、プロジェクト は、ライブラリパス なしで正しくコンパイルされ、クラスパスにあります。
  2. 実行時に、プログラムはエラーメッセージなしで を終了しました。私は を実行したとき、私はなぜこれが起こっている私のプロジェクト

は誰も私を言うことができるクラスパスに LibraryB.jarを入れてまで、私はその理由を知らない ましたか?私が知っているように、Javaで、私がLibraryB.jarを参照すると、コンパイルとリンク時に必要になります。たぶん私は間違っています。具体的な例を欠く

答えて

1

が、私は唯一のあなたの高レベルの概要与えることができます:あなたのプロジェクトがLibraryAを使用している場合

をLibraryBに依存しますが、実際にそのインターフェイスにLibraryBのクラスのいずれかを公開しない(すなわち、それは、それを使用していますLibraryAをコンパイルするだけで、実際にコードを実行するにはLibraryBが必要です。

エラーメッセージを表示せずにアプリケーションを終了すると、自分の過ちであることが多くあります。特に、Javaへの新しい人々のために、このための一般的な原因は、catch -blocks空である(はこれをしない!):

try { 
    someCodeThatCanThrowAndException(); 
} catch (Exception e) 7 
    // nothing 
} 
関連する問題