0

結果の WAR アプリケーションに不要な JAR が含まれないようにするためのソリューションとして、Sun のClassDepを使い始めました。揺れるようです。しかし、この獣は飼いならすのが難しいです!

渡したクラスパスにクラスが明示的に含まれていても、クラスが見つからないというエラーがいくつか発生します。例:

見つかりませんでした: org.apache.log4j.Logger: 次のファイルがありません: Logger
見つかりませんでした: org.hibernate.Session: 次のファイルがありません: セッション
見つかりませんでした: org.joda.time.LocalDate: ファイルがありません: LocalDate

しかし...私が与えているクラスパスの一部をチェックしてください:

...;"C:\Documents and Settings\Andre\Desktop\workspace\icaro\WebContent\WEB-INF\lib\hibernate3.jar";...;"C:\Documents and Settings\Andre\Desktop\workspace\icaro\WebContent\WEB-INF\lib\joda-time-1.5.2.jar";"C:\Documents and Settings\Andre\Desktop\workspace\icaro\WebContent\WEB-INF\lib\log4j-1.2.11.jar";...

それらを調べたところ、「欠落している」クラスが実際にそれらのファイルにあることがわかりました。

誰が何を与えるか考えましたか?

4

3 に答える 3

0

これらのエントリは、参照する1つ以上のJARSのマニフェストファイルに含まれている可能性があります。マニフェストファイルのエントリはClassdepによって無視されるため、エラーが発生します。

ClassDepドキュメントを参照してください:

JARファイルを使用する場合、それらのJARファイル内のClass-Pathマニフェストエントリは無視されるため、これらのマニフェストエントリの値をパスに明示的に含める必要があります。そうしないと、エラーが発生する可能性があります。たとえば、jini-ext.jarを含める場合は、jini-core.jarも明示的に含める必要があります。これは、jini-core.jarがjini-ext.jarのClass-Pathマニフェストエントリに含まれているためです。

于 2009-04-23T11:16:26.493 に答える
0

あなたはウィンドウズで走っていますね。悪名高い「入力行が長すぎます」という例外が発生していませんか?

多数のjarファイルを含める場合は、クラスパスが長すぎる可能性があります。

Hung Huynh(Terracotta)によるこの投稿には、問題のより良い説明と、これがあなたが抱えている問題である場合にそれを処理する方法についてのいくつかのオプションがあります。

于 2009-04-18T15:01:15.950 に答える