私は http://projects.spring.io/spring-framework/春の "Hello World" の例のエラー:JNIエラー発生した&NoClassDefFoundErrorがいる:ORG/springframework /豆/工場/ ListableBeanFactory
で春のフレームワーク "クイックスタート" チュートリアルを実行するためにEclipseを使用しようとしました最初にEclipseでMavenプロジェクトをビルドし、3つの.javaファイルを追加しました。
package hello;
public interface MessageService {
String getMessage();
}
package hello;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MessagePrinter {
final private MessageService service;
@Autowired
public MessagePrinter(MessageService service){
this.service = service;
}
public void printMessage(){
System.out.println(this.service.getMessage());
}
}
package hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.*;
@Configuration
@ComponentScan
public class Application {
@Bean
MessageService mockMessageService(){
return new MessageService(){
public String getMessage() {
return "Hello World!";
}};
}
public static void main(String args[]){
ApplicationContext context =
new AnnotationConfigApplicationContext(Application.class);
MessagePrinter printer = context.getBean(MessagePrinter.class);
printer.printMessage();
}
}
を次のように コードがあるそれから私は、右のEclipseをクリックして "> Javaアプリケーションとして実行" を選択します。 2件のエラーメッセージが飛び出し:
エラー:JNIエラーが発生した、インストールを確認して、もう一度
A Javaの例外が発生しているしてみてください。
とコンソールはスレッドで
例外を示した "メイン" java.lang.NoClassDefFoundErrorが:ORG/springframework /豆/工場/ ListableBeanFactory java.lang.ClassLoader.defineClass1(ネイティブメソッド)で java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) at java .net.URLClassLoader.access $ 100(URLClassLoader.java:73) at java.net.URLClassLoad $ 1.run(URLClassLoader.java:368) at java.net.URLClassLoader $ 1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(ネイティブメソッド) at java.net.URLClassLoader.findClass (URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass java.lang.Class.privateGetMethodRecursive(Class.javaでjava.lang.Class.privateGetDeclaredMethodsでjava.lang.Class.getDeclaredMethods0(ネイティブメソッド) で(ClassLoader.java:357) (Class.java:2701) 。 3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Clas java.langで:によって引き起こさsun.launcher.LauncherHelper.validateMainClass sun.launcher.LauncherHelper.checkAndLoadMainで(LauncherHelper.java:544) (LauncherHelper.java:526) でs.getMethod(Class.java:1784) 。 ClassNotFoundException:org.springframework.beans.factory.ListableBeanFactory java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher java.lang.ClassLoader.loadClassで$ AppClassLoader.loadClass(Launcher.java:331) (ClassLoader.java:357) ...もっと19
私は、POMファイル内にSpring依存関係(aopのaspect beans context context-support core ...を含む)を追加しようとしましたが、うまくいかなかった。
あなたの 'pom'に' spring-beans'依存性を追加しようとしました – Jobin
POMファイルにSpring依存性を追加しようとしましたが(これはaopアスペクトbeanコンテキストコンテキストサポートコアを含みます) 。 –
Eclipseを使用してアプリケーションを実行しているので、対応するjarファイルをプロジェクト構築パスに追加する必要があります。プロジェクトの右クリック→ビルドパス→ビルドパスの設定→ライブラリ→外部JARの追加 –