2

クラスパスに多くのクラス フォルダーと冗長な jar を持ついくつかのレガシー Java アプリケーションがあります。あるベンダーは、クラスパスの先頭に追加する必要がある「オーバーライド」jar を介して更新を出荷しています。クリーンアップは中期的な目標であるべきですが、これらすべてのディレクトリ/jarを、実行中のシステムで実際にクラスロードされるファイルのバージョンを表す1つの構造に折りたたむツールがあるかどうか疑問に思っています. ディレクトリを適切な順序で重ねてコピーし、jar をクラックするなどのスクリプトを作成できると思いますが、これが既に行われていることを願っています。

OneJar ( http://one-jar.sourceforge.net/ ) は、クラスパスをそれを囲む jar にまとめることができますが、jar 内の jar にアクセスするには、特別なクラスローダーの実装に依存しています。

以下のコメント投稿者 (これを回答として再送信する必要があります!) には良い提案がありました。私はまだそれをテストする機会がありませんでした。

4

2 に答える 2

1

解決策の 1 つは、コード カバレッジ ツールを使用してサンプル セッションを実行することです。アプリケーションのすべての機能を確実に実行する場合は、カバレッジのないクラスは使用されず、フィルターで除外できます。

実際、カバレッジ レポートから使用されているクラスのリストを取得するのはそれほど難しくないかもしれません。次に、リストの各クラスについて、それが定義されている JAR/ソース フォルダーを見つけて、これらをリストに追加 (またはセット) します。 . 私が便利だと思ったのは、標準の Unixgrepツールが、特定のクラスがどの JAR ファイルに含まれているかを確認するのに実際に非常に便利であることです。ただし、名前を完全に修飾することはできないため、時折誤検知が発生することが予想されるため、自動化された方法で使用しないでください。

これが何かを解決するのに役立つことを願っています!

于 2009-05-29T13:55:56.357 に答える
0

私は通常、最大 5000 文字の CLASSPATHS にまったく問題はありません。そうは言っても、それよりもかなり長いものを渡すことができるに違いありません。Windows 2000 にシェルの制限があり、XP シェルの cmd.exe を使用しなければならなかったインスタンスに数回遭遇しました。

渡そうとするクラスパスの最大長は?

于 2009-07-02T23:01:31.210 に答える