カタンツァーロ:
どのように私は、Javaの中から特定のjarファイル内のすべてのパッケージ名を取得することができますか?
私はjarファイル内のすべてのクラスを取得する方法を見つけることを知っているが、どのように私は名前だけをパッケージのですか?
lczapski:
あなたはJavaコードでこれを実行したいなら、あなたは使用することができますJarFile
。
指定したjarファイルからすべてのクラスを一覧表示し、そこから(フルネームからそのパッケージを抽出して)すべてのパッケージを取得します。
JarFile jar = ... \\ create from file
jar.stream()
.map(ZipEntry::getName)
.filter(name -> name.endsWith(".class"))
.map(name -> name
.substring(0, name.lastIndexOf('/'))
.replace('/', '.')
)
.distinct()
.forEach(System.out::println);