Javaで2つのjarファイルを処理する方法は?
質問
JavaプロジェクトにNetbeans IDEを使用しています。このプロジェクトでは、jarファイル" htmlunit-2.6.jar"が必要です。
このjarファイルをプロジェクトライブラリフォルダーに含めました。クラス「WebClient」の1つをインスタンス化しました。ただし、このクラスには、「commons-httpclient-3.1.jar」の他のクラスが必要です。ファイル。
「commons-httpclient-3.1.jar」も含めました。プロジェクトライブラリフォルダー内のファイル。しかし、ソースファイルをコンパイルすると、スローされます
ClassNotFoundException:org.apache.commons.httpclient.auth.CredentialsProvider
あるjarファイル内のあるクラスが他のjarファイル内の他のクラスを必要とする場合、この状況に対処する方法を教えてください。
解決
コンパイル時にクラスパスに必要なjarファイルを置くだけで機能します。コマンドラインから実行している場合、次のようになります。
javac -cp jar1:jar2 my.Application
NetBeans
を使用している場合、両方のJARがクラスパス上にあることを NetBeans
に伝える必要があります。 プロジェクト>で定義できます。プロパティウィザード ここで説明 およびチュートリアルのこちら
他のヒント
ClassNotFoundExceptionは、実行時にクラスパスに含まれていない依存関係がライブラリにあることを示しています。ソースは問題ありません。使用できないものを使用した場合、NBはコンパイル時に(または編集前に)通知します。
だから、" 依存性地獄" Javaの。小さなプロジェクトの場合は、readmeファイルやドキュメントなどを使用してすべての依存関係を手動で確認し、oxbow_lakesが述べたようにプロジェクト構成に配置することができます。より大きなことについては、 maven をご覧ください。それはあなたのために(ほとんど)すべてを行います!
(MavenはNB6で利用可能)