java. lang. IllegalArgumentException是什么意思?
错误:java.lang.IllegalArgumentException非法论据异常,也可称为非法形参异常。argument不是参数的意思,是争吵,争论;论据,经常用args用作形参。
在SSM动态javaweb服务器框架中,经常看到这个异常,很多人说这是参数异常,检查自己在ioc容器中配置的参数是否正确,其实这是项目使用的Java编译器(即Javacompiler)使用的jdk版本和Java的运行环境(即jreJavaruntimeenvironment)版本不匹配造成的。
如果jdk使用的是1.7,jre使用的是1.8,就会出现这一异常。即使是低版本的编译器,高版本的运行环境,也会出现这一异常。
解决方法如下:
第一:修改Java compiler和jre
1、在eclipse-window-preference-java的里面的installed JREs和Compiler
2、Compiler就是修改编译器的Installed JREs就是改变运行环境。按道理说只要jre的版本高于jdk(即Compiler)的版本,就能运行,因为高版本环境兼容低版本程序。但并不是的,jdk1.8的修改很大,就算前高后低,仍旧派出这个异常。所以我们都把他们修改成1.7版本。
Compiler改成1.7。按下图改成1.7,然后右下角apply就行了。
3、修改jre为1.7,看下图,电脑里装了三个jdk版本,选择jdk1.7,然后spply就行了。
第二:修改tomcat服务容器的JRE
1、因为tomcat是基于java编写的服务容器,所以它是需要java运行环境的。其实这个更容易开发人员忽略,但是这个更重要,因为动态web工程最终是在tomcat里面运行的,而tomcat的运行jre直接决定web工程的jre,而上面配置的就直接没用了,因为用到tomcat了,是web工程,不是纯java工程。
修改tomcat的jre,window-Preferences-Server-Runtime Environments ,电脑里装了两个tomcat容器一个7,一个9,选择一个然后Edit。
2、Edit就是配置的意思,及配置这个选中的tomcat。下面就是配置界面,选择jdk1.7,然后Finish就就ok了。这样,java.lang.IllegalArgumentException问题就得到了成功解决。