java.lang.IllegalArgumentException 异常报错完美解决

目录

修改JDK使用版本

修改开发工具idea配置(eclipse的直接跳过这个看下面)

修改开发工具eclipse配置


学习spring依赖注入的时候碰到这个坑,折腾了许久,记录一下以防其他小伙伴入坑!

该异常主要原因是因为JDK与Spring版本不一致。要么更换jdk,要么重新下载符合jdk的springjar包

我本地装了两个JDK版本,一个1.8,一个1.7,原本以为只要修改一下环境变量 JAVA_HOME改成1.7jdk地址,再在idea或者eclipse里面更换一下JDK版本就好了的,结果现实是残酷的。一直重复报Error:java: 无效的目标发行版: 8。

打开cmd命令行时,输入java -version命令,永远都是显示1.8,改JAVA_HOME貌似没卵用。

好了废话不多说,下面开始说明解决方法!

 

修改JDK使用版本

在系统中找到:

C:\ProgramData\Oracle\Java\javapath  

C:\Windows\System32  

C:\Windows\SysWOW64    (这个路径其实我没用的)

删除其中的将这三个文件删除!

再修改JAVA_HOME中的jdk指定路径即可!

这三个路径是我在网上看别人说的解决版本,但是按照这个方法做了后又蛋疼的出现了另一个问题

1.我的第一个路径位置  C:\Program Files (x86)\Common Files\Oracle\Java\javapath(每个人的地址可能不一样)

这个目录下的文件不能删除,不然cmd命令行执行java -version会报

正确做法应该是找到1.7jdk的安装路径bin目录下的同样三个文件 复制到 第一个路径进行替换注意如果java.exe进程启动中记得先结束进程

2.如果替换完后还是报上面错误,再接着修改注册表

       运行regedit

  

  找到HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft

  

  修改Java Development Kit的CurrentVersion默认值为1.7

  修改Java Runtime Environment的CurrentVersion默认版本为1.7

  改完后记得测试一下

 

 

修改开发工具idea配置(eclipse的直接跳过这个看下面)

1.修改File | Settings | Build, Execution, Deployment | Compiler | Java Compiler中项目字节码版本

2.点击项目按 F4

 

最后大功告成!!

 

修改开发工具eclipse配置

根据提供的引用内容,报错信息是"java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String",这个错误是由于在比较时,将java.util.Date类型和java.lang.String类型进行了比较,导致类型不匹配的异常解决这个问题的方法是将比较的两个对象的类型统一为相同的类型。 解决方案如下: 1. 确保比较的两个对象的类型相同,可以使用类型转换将java.lang.String类型转换为java.util.Date类型,或者将java.util.Date类型转换为java.lang.String类型,以便进行比较。 2. 如果比较的两个对象分别是数据库中的日期字段和一个字符串,可以使用数据库的日期函数将字符串转换为日期类型,然后再进行比较。 3. 如果比较的两个对象分别是Java代码中的变量,可以使用SimpleDateFormat类将字符串解析为日期对象,或者将日期对象格式化为字符串,然后再进行比较。 下面是一个示例代码,演示了如何解决这个报错: ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateComparison { public static void main(String[] args) { String dateString = "2021-01-01"; Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); try { Date parsedDate = dateFormat.parse(dateString); // 将字符串解析为日期对象 if (date.compareTo(parsedDate) > 0) { System.out.println("Date is after parsedDate"); } else if (date.compareTo(parsedDate) < 0) { System.out.println("Date is before parsedDate"); } else { System.out.println("Date is equal to parsedDate"); } } catch (ParseException e) { e.printStackTrace(); } } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值