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

错误:发生JNI错误-SpringBoot-java.lang.NoClassDefFoundError:org/modelmapper/modelmapper

梁华皓
2023-03-14

我试图使用命令“java-jar XXXX.jar”运行spring boot项目,但出现以下错误:

错误:发生JNI错误,请检查您的安装并重试线程“main”java.lang.NoClassDefFoundError中的异常:org/modelmapper/modelmapper位于java.lang.Class.getDeclaredMethods0(本机方法),java.lang.Class.privateGetDeclaredMethods(Class.java:2701)位于java.lang.Class.privateGetMethodRecursive(Class.java:3048)位于sun.launcher.launchelper.validateMainClass(launchelper.java:544)的sun.launcher.launchelper.java:526的java.lang.Class.getMethod0(Class.java:3018)和java.lang.Class.getMethod(Class.java:1784)原因:java.lang.ClassNotFoundException:org.modelmapper.modelmapper位于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)。。。还有7个

我正在使用模型映射器,并以以下方式将其声明为bean

@SpringBootApplication(exclude = {SecurityAutoConfiguration.class })
public class StartApplication {

    @Bean
    public ModelMapper modelMapper() {
        return new ModelMapper();
    }

    public static void main(String[] args) {
        SpringApplication.run(StartApplication.class, args);
    }
}

在pom中,我定义了以下上瘾:

<dependency>
    <groupId>org.modelmapper</groupId>
    <artifactId>modelmapper</artifactId>
    <version>2.0.0</version>
</dependency>

有什么问题吗?

共有1个答案

鄢选
2023-03-14

我通过执行以下步骤修复了此问题:

步骤1:添加ModelMapper库依赖项;

<dependency>
    <groupId>org.modelmapper</groupId>
    <artifactId>modelmapper</artifactId>
    <version>2.4.3</version>
</dependency>

Step2:在我们的Spring配置中定义ModelMapper bean:

import org.modelmapper.ModelMapper;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class SpringBootAppDemo {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(SpringBootAppDemo.class);
    }
    
    @Bean
    public ModelMapper modelMapper() {
        return new ModelMapper();
    }
}

步骤3:注入并使用ModelMapper

实体类

@Entity
public class Student {
    private Long id;
    private String firstName;
    private String lastName;
    private int year;
}

DTO类

public class StudentDto {
    private String firstName;
    private String lastName;
    private int year;
}

实例

import org.modelmapper.ModelMapper;

@Autowired
private ModelMapper modelMapper;

Student student = new Student(...);
ModelMapper modelMapper = new ModelMapper();
StudentDto studentDto = modelMapper.map(student, StudentDto.class);

Step4:停止你的项目;

步骤5:运行命令行mvnclean

第六步:再次运行您的项目;

我希望这会有帮助!!

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

  • 我试图使用Eclipse在http://projects.spring.io/spring-framework/运行Spring框架“快速入门”教程 我首先在Eclipse中构建了一个Maven项目,并添加了三个. java文件。代码如下 然后我右键单击Eclipse并选择“作为运行” > 错误:发生了JNI错误,请检查您的安装并重试 发生Java异常。 控制台显示 线程“main”java.la

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

  • 我有一个JSON: 我创建了以下pojo 在我的控制器中,我有一个@PostMapping方法,我尝试检索DocumentToSignRestRequest: 并使用模型映射器将其传递给DocumentDto类:DocumentDto DocumentDto=ModelMapper。地图(documentToSignRestRequest,DocumentDto.class); 这个类的不同属性与

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

  • 我想找到解决这个问题的办法,但似乎很难。我有appengine项目使用处理注册的servlet。当我尝试调用这个servlet时,我有以下日志报告: