java启动项目遇到InvocationTargetException错误

这个异常引起的原因是java.lang.NoClassDefFoundError

我的解决思路(方法):
1、如果你的项目是使用maven打包的,替换原来的jar的同时,需要替换lib下面的东西
2、启动方式:java -jar 如果启动失败,查看与该项目同目录下是否有
.sh命令脚本,有的话,使用sh命令启动sh start.sh(我这里那个脚本的名字叫start.sh)

其他问题记录:日志打印,一个项目统一用一个日志框架,用一种方式引入(比如:@Slf4j
在这里插入图片描述




原因(原理性的东西)
InvocationTargetException错误:

1、包冲突、有重复包或者缺少包

2、项目jdk和部署jdk版本不一样,导致InvocationTargetException异常信息返回一个空值,没有调用invoc里的重写消息方法。

3、映射文件发生改变

怎么解决java.lang.NoClassDefFoundError错误

Java中,`InvocationTargetException`通常会在运行时抛出,当调用的Java代理方法(比如通过`java.lang.reflect.Method.invoke()`调用)内部抛出了异常时,这个异常会包装在这个目标异常里。如果你遇到了一个`InvocationTargetException`为`null`的情况,这可能有几种原因: 1. **检查方法是否返回void**:`InvocationTargetException`通常是由于被调用的方法没有返回值而抛出的。如果方法声明为`void`,那么实际调用时它不会返回任何值,因此`invoke()`的结果就是`null`。 2. **未捕获的内部异常**:如果方法内部没有捕获并封装异常,那么外部可能会接收到`null`。你需要检查被调用的方法是否有适当的异常处理。 3. **空引用问题**:如果传入给`invoke()`的对象或方法本身是`null`,也会导致`null`异常。确保你的代理对象和被调用的方法都已初始化。 4. **代码逻辑错误**:在罕见的情况下,可能是代码逻辑错误,例如在尝试调用无效的方法或方法体为空。 处理这种情况的一种常见做法是: ```java try { // 调用方法 Object result = method.invoke(target, arguments); } catch (IllegalAccessException | IllegalArgumentException e) { // 捕获访问权限或参数问题 log.error("Error accessing method", e); } catch (InvocationTargetException ite) { if (ite.getTargetException() != null) { // 检查是否有实际的异常 log.error("An exception occurred in the target method", ite.getTargetException()); } else { log.warn("Target method threw a null exception"); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值