特定の「メイン」クラスから推移的に依存するクラスのみを含むJARファイルを生成する簡単な方法はありますか(もちろんリフレクションは省略されています)。アプリケーションの一部を他の人に提供したいのですが、アプリケーション全体をエクスポートしたくありません。
ありがとう、M.
おそらく最も簡単な方法は、yGuard のようなツールを使用することです。これにより、エントリ ポイントを指定した場合と同じ問題が解決され、依存関係の分析が実行されて、Jar から除外できるクラスが特定されます。
しかし、私はこの問題について自分で何度か熟考し、挑戦のために自分でやってみたいと思いました. 必要なのは、Java ソース ファイルのインポート ステートメントを解析し、クラスがどのように相互作用するかの依存関係グラフを作成することだけです。完全なグラフが組み立てられるまで、メイン クラスからの各参照を再帰的にスキャンする必要があります。次に、グラフがアセンブルされると、一部のパッケージ化ロジックが処理できる方法でこれを出力する場合になります (または、大胆な場合は、JDK に独自の組み込みの Jar 作成/変更コードがあり、それを自分で実行できます)。確かに、このアプローチでは、このカスタム ユーティリティを作成する必要があり、コード内の完全修飾クラス参照も欠落します。