【问题标题】:Error: A JNI error has occurred - SpringBoot - java.lang.NoClassDefFoundError: org/modelmapper/ModelMapper错误:发生 JNI 错误 - SpringBoot - java.lang.NoClassDefFoundError: org/modelmapper/ModelMapper
【发布时间】:2019-06-05 19:57:13
【问题描述】:

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

错误:发生 JNI 错误,请检查您的安装并 重试线程“主”java.lang.NoClassDefFoundError 中的异常: org/modelmapper/ModelMapper 在 java.lang.Class.getDeclaredMethods0(本机方法)在 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.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 更多

我正在使用 modelmapper,并通过以下方式将其声明为 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>

可能是什么问题?

【问题讨论】:

  • 您是否尝试重新构建干净并构建?
  • 是的,我试过了,但我总是遇到同样的问题。
  • 好的,运行时你是否收到同样的消息错误?
  • 是的,我总是遇到同样的错误
  • 对不起,你在 IDE 上得到了同样的结果吗?看起来您的 JDK 没有响应...

标签: java spring-boot jar modelmapper


【解决方案1】:

我通过以下步骤解决了这个问题:

Step1:添加ModelMapper库依赖;

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

第二步:在我们的 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();
    }
}

Step3:注入并使用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);

第四步:停止你的项目;

第五步:运行命令行mvn clean

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

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 2012-05-01
    • 2013-09-24
    • 2014-02-07
    相关资源
    最近更新 更多