リフレクションを使用して、実行時にjarファイルに動的にリンクしようとしています。私はこの例外を取得するには、メインクラスと私はメソッドを呼び出すようにしようとする場合を除い方法とそのすべての作業罰金のための宣言を作成しました:Java reflection ClassNotFound例外
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.myapp.languagedetectorreflection.LangDetectReflectionManager.CreateDetectorFactory(LangDetectReflectionManager.java:73)
at com.myapp.sharedlibrary.LanguageManager.LanguageDetector.<init>(LanguageDetector.java:40)
at com.myapp.sharedlibrary.LanguageManager.LanguageDetector.getInstance(LanguageDetector.java:50)
at com.myapp.tikamanager.MetaParser.<init>(MetaParser.java:66)
at com.myapp.langtest.LangTest.main(LangTest.java:85)
Caused by: java.lang.NoClassDefFoundError: org/reflections/Reflections
at com.cybozu.labs.langdetect.DetectorFactory.<init>(DetectorFactory.java:77)
... 9 more
Caused by: java.lang.ClassNotFoundException: org.reflections.Reflections
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at com.myapp.languagedetectorreflection.ParentLastURLClassLoader.loadClass(ParentLastURLClassLoader.java:70)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
ラインを質問である: final Reflections reflections = new Reflections(null, new ResourcesScanner());
私は、それがロードされることを望んでいるが、それは助けにならないと主なアプリケーションへの直接の依存として反射jarを宣言しようとしました。他に何をすべきかわからないのですか?依存関係を読み込むためにリフレクションを使用するときに、トリックがありますか?
これらのクラスローディングに関する質問は最近すべてなぜですか? JVMクラスローダーは改善されません。これを使って。 – duffymo
org.reflectionsを持つjarファイルがないようです。実行時のクラスパスのリフレクションランタイムクラスパス – ControlAltDel
@ControlAltDelを確認してください.Maven-dependancy-pluginを使用していたことを忘れていました.jarファイルを依存ディレクトリにコピーする必要がありました。 –