RunJar.main() を見て、指定された jar ファイルを解凍し、元の jar とローカルの展開されたコピーのいくつかのルートから精巧なクラス パスを構築することを観察しています。
何のために?元のjarファイルのみを含めることではカバーされない、展開されたjarによってサポートされるユースケースは何ですか?
RunJar.main() を見て、指定された jar ファイルを解凍し、元の jar とローカルの展開されたコピーのいくつかのルートから精巧なクラス パスを構築することを観察しています。
何のために?元のjarファイルのみを含めることではカバーされない、展開されたjarによってサポートされるユースケースは何ですか?
Hadoop は Jar-in-jars (つまり、jar ファイル内の lib フォルダー内の jar ファイル - 一口ですよね!) をサポートします。現在の Java バージョンはいずれも jar-in-jar をサポートしていません (8 はこれをサポートすると噂されていると思います。少なくとも、これについていくつかの不平を読んだことがあると思いますが、それについては引用しないでください)。これがその方法です。 Hadoop はこれを実現します。
uber-jar を作成できたばかりなのに、なぜ jar-in-jar を実行したいのでしょうか? ビルド時間が理由になる可能性があります (巨大な depedant jar をアンパックして再パックすると、ビルド時間が数秒または数分長くなる可能性があります)。もっとあると確信していますが、私にとっては、結果の瓶は「よりきれい」だと思います-個人的な好みだと思います.