2012-09-11 2 views
5

Javaプロジェクトで不要なJARSを見つける方法を教えてください。私はJARをたくさん持っているいくつかのJavaプロジェクトを引き継いでいます。私はそれらを必要としない気がしています。プロジェクトが必要とするJARや必要がないJARを見つけたら、誰か教えてください。以下は Javaプロジェクトで不要なJARSを見つける方法

は、プロジェクトマネージャを使用するようになり、私はすべてのJARを必要とする誰かがいくつかのトリック

activation-1.1.jar 
antlr-2.7.6.jar 
aopalliance-1.0.jar 
asm-3.1.jar 
asm-attrs-1.5.3.jar 
aspectjrt-1.6.8.jar 
aspectjweaver-1.6.8.jar 
c3p0-0.9.2-pre4.jar 
cas-client-core-3.2.1.jar 
cglib-2.2.jar 
commons-beanutils-1.8.0.jar 
commons-codec-1.4.jar 
commons-collections-3.1.jar 
commons-dbcp.jar 
commons-digester-1.8.1.jar 
commons-email-1.0.jar 
commons-fileupload-1.1.1.jar 
commons-io-1.1.jar 
commons-lang-2.5.jar 
commons-logging-1.1.1.jar 
commons-pool.jar 
dom4j-1.6.1.jar 
dumbster-1.6.jar 
ehcache-1.2.3.jar 
files.txt 
hibernate-annotations-3.5.0-Final.jar 
hibernate-commons-annotations-3.2.0.Final.jar 
hibernate-core-3.5.0-Final.jar 
hibernate-entitymanager-3.5.0-Final.jar 
hibernate-jpa-2.0-api-1.0.0.Final.jar 
hibernate-search-3.0.0.GA.jar 
hibernate-validator-4.0.2.GA.jar 
hsqldb-1.8.0.10.jar 
httpclient-4.1.2.jar 
httpclient-cache-4.1.2.jar 
httpcore-4.1.2.jar 
httpmime-4.1.2.jar 
icu4j-2.6.1.jar 
jackson-core-asl-1.5.3.jar 
jackson-mapper-asl-1.5.3.jar 
javassist-3.9.0.GA.jar 
jaxb-api-2.1.jar 
jaxb-impl-2.1.3.jar 
jaxen-1.1.1.jar 
jcl-over-slf4j-1.5.10.jar 
jdom-1.0.jar 
joda-time-1.6.jar 
joda-time-jsptags-1.0.2.jar 
jstl-1.2.jar 
jta-1.1.jar 
log4j-1.2.14.jar 
log4j-1.2.15.jar 
lucene-core-2.3.2.jar 
lucene-highlighter-2.0.0.jar 
mail-1.4.jar 
mailapi.jar 
mail.jar 
mchange-commons-java-0.2.2.jar 
mysql-connector-java-5.0.5.jar 
org.springframework.aop-3.1.1.RELEASE.jar 
org.springframework.asm-3.1.1.RELEASE.jar 
org.springframework.aspects-3.1.1.RELEASE.jar 
org.springframework.beans-3.1.1.RELEASE.jar 
org.springframework.binding-2.3.1.RELEASE.jar 
org.springframework.context-3.1.1.RELEASE.jar 
org.springframework.context.support-3.1.1.RELEASE.jar 
org.springframework.core-3.1.1.RELEASE.jar 
org.springframework.expression-3.1.1.RELEASE.jar 
org.springframework.faces-2.3.1.RELEASE.jar 
org.springframework.instrument-3.1.1.RELEASE.jar 
org.springframework.instrument.tomcat-3.1.1.RELEASE.jar 
org.springframework.jdbc-3.1.1.RELEASE.jar 
org.springframework.jms-3.1.1.RELEASE.jar 
org.springframework.js-2.3.1.RELEASE.jar 
org.springframework.js.resources-2.3.1.RELEASE.jar 
org.springframework.orm-3.1.1.RELEASE.jar 
org.springframework.oxm-3.1.1.RELEASE.jar 
org.springframework.test-3.1.1.RELEASE.jar 
org.springframework.transaction-3.1.1.RELEASE.jar 
org.springframework.web-3.1.1.RELEASE.jar 
org.springframework.webflow-2.3.1.RELEASE.jar 
org.springframework.web.portlet-3.1.1.RELEASE.jar 
org.springframework.web.servlet-3.1.1.RELEASE.jar 
org.springframework.web.struts-3.1.1.RELEASE.jar 
persistence-api-1.0.jar 
quartz-1.5.2.jar 
slf4j-api-1.5.10.jar 
slf4j-log4j12-1.5.10.jar 
smtp.jar 
spring-ldap-1.3.1.RELEASE-all.jar 
spring-security-cas-3.1.0.RELEASE.jar 
spring-security-config-3.1.0.RELEASE.jar 
spring-security-core-3.1.0.RELEASE.jar 
spring-security-crypto-3.1.0.RELEASE.jar 
spring-security-ldap-3.1.0.RELEASE.jar 
spring-security-openid-3.1.0.RELEASE.jar 
spring-security-remoting-3.1.0.RELEASE.jar 
spring-security-taglibs-3.1.0.RELEASE.jar 
spring-security-web-3.1.0.RELEASE.jar 
spring-tx-3.0.5.RELEASE.jar 
stax-api-1.0-2.jar 
tiles-api-2.1.3.jar 
tiles-core-2.1.3.jar 
tiles-jsp-2.1.3.jar 
tiles-servlet-2.1.3.jar 
urlrewritefilter-3.1.0.jar 
validation-api-1.0.0.GA.jar 
xalan-2.6.0.jar 
xml-apis-1.3.02.jar 
xmlParserAPIs-2.6.2.jar 
xom-1.0.jar 
+1

Jbossは分析ツールを書いています。代わりに、不要なものを見つけるために、迅速な削除と再起動を行うことができます –

+0

jarを削除してwebappを再起動すると、正常な動作中に実際に必要だった起動時にロードされなかったクラスを含むjarを持つことができます。 –

+0

必要な依存関係を見つけることは大したことではありませんが、必要なバージョンを見つけることは難しい作業です。 –

答えて

5

に私の最善の方法を伝えることができ、私はその後、いけないMySQLとHibernateで春のWebフロープロジェクトのJARのリストでありますMavenのように自動的に依存関係を処理します。これはおそらく最長期間の解決策になるでしょう

ブルートフォースの方法は、すべてのJARファイルを別のフォルダに移動してプロジェクトをコンパイルしようとすることです。不足しているクラスエラーがたくさんあるので、どのjarがクラスを持っているかを把握し(Googleがここで助けてくれるかもしれない)、追加してから、再度コンパイルします。あなたは、Eclipse IDEを使用している場合

ものは、私が

+2

これは正しいですが、彼/彼女の状況によっては、削除と点検は追加や点検よりも速いかもしれません。 – BlackVegetable

0

考えることができる唯一の2つの方法があり、私は未使用のjarファイルのためのドキュメントはここで見つけることができClassPath Helper
をダウンロードして使用することをお勧めいたします:Unreferenced Classesしかし 、通知をお読みください:

にClass.forName()がクラスをロードするために使用されているケースでは、ストラット、WARのweb.xmlファイル、EJB記述子、など インタフェース定数を含む多くのフレームワークでは一般的です(静的最終定数)は、compインラインで畳んだ。これは、実行時に定数のコンパイル時の依存関係がありますが、宣言インタフェース/クラスへの参照がないことを意味

更新:

私は、Eclipse Heliosのサービスリリース2を使用していますし、それは私のためにうまく動作します。あなたが確認する必要があることは、パッケージエクスプローラー(いつものようにプロジェクトエクスプローラーではありません)を使用してプロジェクトを探索し、ウィンドウ - >表示 - >その他 - >クラスパスヘルパーがClassPath Viewを選択する必要があります。

+0

これでjava.lang.NullPointerException以外何も得られません –

+0

Johnathan、上記の私の更新をお読みください。著者Bryant Harrisのおかげで、Eclipse Helios 3.6 Service Release 2でうまくいきます。最初の試みでは、私はあなたのような同じ問題を抱えています。著者の記事:[リンク](http://www.theserverside.com/discussions/thread.tss?thread_id=37113)を読んだ後、私はこれに対処する方法を考え出しました。パッケージエクスプローラを使用してプロジェクトを調査したところ、それは機能します。私がClassPath Viewを開いたときにEclipse IDEがハングアップしているプロジェクトがいくつかあります。もし私が助けることができたら、私に知らせてください。幸運なヨハンタン。 –

+0

私は春のWebプロジェクトでそれを試してみましたが、私は春の瓶をすべて取り除くことができると私に語っていました...私はそれがうまくいかないと思います –

1

アプリケーションに対してJBoss Tattletaleを実行してみてください。これにより、使用していないjar、異なるバージョン番号のJarを複製するなど、アプリケーションの依存関係に関するレポートが表示されます。

関連する問題