javaプロジェクトのコードを分析しようとしています。 私は、insertClassPath関数を使用してjavassistパスに追加するjarファイルで解析するプロジェクトを持っています。プロジェクトのクラスフォームにアクセスしようとすると、すべてうまく動作します。 問題は、プロジェクトで使用するライブラリのクラスにもアクセスする必要があることです。javassistでライブラリjarsをロードする
私はプロジェクトのjarと同じようにライブラリをクラスパスに追加しようとしましたが、NotFoundExceptionが発生するので正しいパスを与えていないと思います。
コードは次のようになります。
String jarFileName = "C:/Users/diana/Desktop/Test/ckjm.jar";
ClassPool pool = ClassPool.getDefault();
try{
pool.insertClassPath(jarFileName);
pool.insertClassPath("C:/Users/diana/Desktop/Test/ckjm/lib/bcel-5.2.jar");
} catch (NotFoundException e) {
System.out.println("error loading jar!!");
}
私はテスト目的でharcoded文字列を使用していました。 jarファイルは、libフォルダまたはjarにアーカイブされたプロジェクトにあります。 別のjarファイルに含まれているjarファイルをどのように追加すればよいか分かりません。
注:私は(:「C:/Users/diana/Desktop/Test/bcel-5.2.jar」などのパスを与える)別のjarファイルとしてライブラリを続けるならば、それは罰金
を中華鍋すべてのヘルプターゲットJARは、別のJAR内にある場合は、JARのJarURLConnection URLパスを使用して定義されURLClassLoaderを使用して作成したLoaderClassPathを使用することができます
私はこれを試してみましたが、それでも私はjarファイルからクラスにアクセスすることはできません。 insertClassPath関数は例外をスローしませんが、pool.get(className)を使用してクラスにアクセスしようとすると、NotFoundExceptionが返されます –