java 非法参数错误_错误:java.lang.IllegalArgumentException

错误:java.lang.IllegalArgumentException 非法论据异常,也可称为非法形参异常。argument不是参数的意思,是争吵,争论;论据。我们经常用args用作形参。

在SSM动态javaweb服务器框架中,我们经常看到这个异常,很多人说这是参数异常,检查自己在ioc容器中配置的参数是否正确,其实这是项目使用的Java编译器(即Java compiler)使用的jdk版本和Java的运行环境(即jre Java runtime environment)版本不匹配造成的。如果jdk使用的是1.7,jre使用的是1.8,就会出现这一异常。即使是低版本的编译器,高版本的运行环境,也会出现这一异常,好好思考一下。

怎么修改呢。

第一:修改Java compiler和jre

在eclipse-window-preference-java的里面的installed JREs和Compiler

f9c5de395c9d08d0889a536c498f132b.png

Compiler就是修改编译器的Installed JREs就是改变运行环境。按道理说只要jre的版本高于jdk(即Compiler)的版本,就能运行,因为高版本环境兼容低版本程序。但并不是的,jdk1.8的修改很大,就算前高后低,仍旧派出这个异常。所以我们都把他们修改成1.7版本。

Compiler改成1.7。按下图改成1.7,然后右下角apply就行了。

a8a8e9c68a09f5c0a1d0f814a79cc864.png

修改jre为1.7,看下图,我的电脑里装了三个jdk版本,选择jdk1.7,然后spply就行了。为什么设置jre让选择jdk呢?因为jdk里面就包含jre。其实本来这里里面的罗列的都应该是JRE的。

2c6c30e037865bee1503df45bd96314d.png

第二:修改tomcat服务容器的JRE

因为tomcat是基于java编写的服务容器,所以它是需要java运行环境的。其实这个更容易开发人员忽略,但是这个更重要,因为动态web工程最终是在tomcat里面运行的,而tomcat的运行jre直接决定web工程的jre,而上面配置的就直接没用了,因为用到tomcat了,是web工程,不是纯java工程。

所以怎么修改tomcat的jre呢?window-Preferences-Server-Runtime Environments ,看我的电脑里装了两个tomcat容器一个7,一个9(想知道怎么安装tomcat可以翻看我前面写的文章),选择一个然后Edit

1cff45f4601974971c3a728f43927870.png

Edit就是配置的意思,及配置这个选中的tomcat。下面就是配置界面,选择jdk1.7,然后Finish就就ok了。

c60cb3419c22a36d45516cfe86449147.png

总结:这些都是关于环境的。我们应该明白Java语言的本质。我们都说Java语言很牛,为什么牛?就在于它跨平台,所以它有一个编译器,即编译环境,和运行环境jre,编译器可以在所有平台上都一样,但是jre分别在windows、linus、MacOS等系统上就有不同的jre,不同的jre就有不同的jvm,牛就牛在这个jvm上,java里面编写jvm虚拟机的人才是最牛的。说这个jvm跨平台吗?并不跨,只是有多个jvm,一个系统匹配一个,但我们可以说Java语言跨平台。理解这个我们才能更好的在ide或者tomcat等服务容器中配置jdk和jre。

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

吴小嚎

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值