gpt4 book ai didi

java - Spring "hello world"示例错误 : A JNI error has occured & NoClassDefFoundError: org/springframework/beans/factory/ListableBeanFactory

转载 作者:行者123 更新时间:2023-11-30 06:59:28 24 4
gpt4 key购买 nike

我尝试使用 Eclipse 运行 Spring 框架“快速入门”教程: http://projects.spring.io/spring-framework/

我首先在Eclipse中构建了一个Maven项目,并添加了三个.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 应用程序”。跳出两条错误信息:

  1. 错误:发生 JNI 错误,请检查您的安装并重试

  2. 发生 Java 异常。

控制台显示

线程“main”中的异常 java.lang.NoClassDefFoundError: org/springframework/beans/factory/ListableBeanFactory 在 java.lang.ClassLoader.defineClass1( native 方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:763) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:73) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:368) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:362) 在 java.security.AccessController.doPrivileged( native 方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:361) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 java.lang.Class.getDeclaredMethods0( native 方法) 在 java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 在 java.lang.Class.privateGetMethodRecursive(Class.java:3048) 在 java.lang.Class.getMethod0(Class.java:3018) 在 java.lang.Class.getMethod(Class.java:1784) 在 sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)引起原因:java.lang.ClassNotFoundException:org.springframework.beans.factory.ListableBeanFactory 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 19 更多

我尝试在POM文件中添加更多Spring依赖项(包括aop方面bean上下文上下文支持核心...),但这不起作用。

最佳答案

我已经解决了这个问题。事实上这个问题与“发生JNI错误”关系不大。

导致该问题的原因是Eclipse下载Maven依赖jar文件“spring-beans”时出现错误

所以我(手动)删除了“....m2\repository\org\springframework\spring-beans”中的所有文件,并使用Eclipse重建项目。这样问题就解决了。

关于java - Spring "hello world"示例错误 : A JNI error has occured & NoClassDefFoundError: org/springframework/beans/factory/ListableBeanFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41177164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com