Uber-jar として提供される Reflections 0.9.8 ライブラリを使用しようとしています。その JAR ("reflections-0.9.8-uberjar") をプロジェクトのビルド パスに追加すると、Eclipse はそのクラス タイプ (Reflection、ClasspathHelper など) を見つけられません。
単一の「reflections-0.9.8.jar」(uberのものではない)を抽出してビルドパスに追加すると、コンパイル時にすべて正常に動作しますが、プロジェクトを実行するとNoClassDefFoundErrorが発生します(これは私が依存関係の欠如が原因であることは間違いありません)。
また、uber-jar 内にすべての .jar を追加しようとしましたが、それでも NoClassDefFoundError が発生します。
uberjar として配布されているこのライブラリを使用するには、どうすればよいですか?
編集: それが役立つ場合、これはリフレクションを呼び出したいメソッドです(リフレクションを使用してパッケージ内のすべてのクラスを見つけることができますか?から取得したスニペットです):
private static Set<Class<?>> getAllClassesInPackage(String pckg){
List<ClassLoader> classLoadersList = new LinkedList<ClassLoader>();
classLoadersList.add(ClasspathHelper.contextClassLoader());
classLoadersList.add(ClasspathHelper.staticClassLoader());
Reflections reflections = new Reflections(new ConfigurationBuilder()
.setScanners(new SubTypesScanner(false), new ResourcesScanner())
.setUrls(ClasspathHelper.forClassLoader(classLoadersList.toArray(new ClassLoader[0])))
.filterInputsBy(new FilterBuilder().include(FilterBuilder.prefix(pckg))));
return reflections.getSubTypesOf(Object.class);
}