当前位置: 首页 > 知识库问答 >
问题:

Spring"Hello world"示例错误:发生了JNI错误

颛孙炜
2023-03-14

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

我首先在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并选择“作为运行”

>

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

    发生Java异常。

    控制台显示

    线程“main”java.lang.NoClassDefFoundError:org/springframework/beans/factory/ListableBeanFactory位于java.lang.ClassLoader.defineClass1(本机方法)位于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.findClass(URLClassLoader.java:361)在java.security.AccessController.doPrivileged(本机方法)在java.net.URLClassLoader.findClass(urlcloader.java:361)运行(URLClassLoader.java:362)sun.misc.Launcher$AppClassLoader.loadClass的java.lang.ClassLoader.loadClass(ClassLoader.java:424)java.lang.ClassLoader.loadClass(ClassLoader.java:357)java.lang.Class.getDeclaredMethods0(本机方法)java.lang.Class.privateGetDeclaredMethods(Class.java:2701)java.lang.Class.PrivateGetMethods(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方面beans上下文支持核心…),但没有成功

  • 共有1个答案

    仲孙毅
    2023-03-14

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

    这个问题的原因是当Eclipse下载Maven依赖项jar文件时发生了一个错误,即“Springbeans”。

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

     类似资料:
    • 我试图使用命令“java-jar XXXX.jar”运行spring boot项目,但出现以下错误: 错误:发生JNI错误,请检查您的安装并重试线程“main”java.lang.NoClassDefFoundError中的异常:org/modelmapper/modelmapper位于java.lang.Class.getDeclaredMethods0(本机方法),java.lang.Clas

    • 我用记事本写了一个“Helloworld.java”文件。我通过写“javac Helloworld.java”在cmd上编译,我在同一个目录中得到了“Helloworld.class”文件。 我编写了“java Helloworld”来启动它,出现了一个JNI错误。 我检查了我的java版本,找不到原因。我如何解决这个问题? 我将java bin的路径添加到系统的路径列表中。 下面是我的cmd屏

    • 1.1.1. 当发生了错误 1.1.1. 当发生了错误 若琪会使用 Skill 的错误消息告知用户发生了什么错误,并如何解决该错误;如果 Skill 没有返回标准的错误格式,若琪将无法告知用户如何解决问题。 { "header": { "messageId": "789-123", "namespace": "Rokid", "name": "ErrorResponse

    • 当我试图使用命令: 错误:发生了JNI错误,请检查您的安装并在线程“main”java中重试。lang.NoClassDefFoundError:org/apache/http/client/ClientProtocolException 它在eclipse中运行良好。请帮忙。

    • 我在翻关于spring boot项目的例子。我已经通过maven编译并创建了一个jar文件,但是在运行尝试时出现了一个错误。 https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-simple 错误: java-jar spring-boot-sample-

    • 目前我尝试在本地连接mysql服务器。我的代码如下所示: 现在,当我使用:编译时,一切正常。但是现在,当我尝试使用:运行编译时,我收到以下错误: 错误:发生JNI错误,请检查您的安装并在线程“main”java中重试异常。lang.UnsupportedClassVersionError:JdbcSelectTest由最新版本的Java运行时(类文件版本55.0)编译,此版本的Java运行时仅识别