質問

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で利用可能)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top