错误: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

       0ec012c2c3c74adda850348d8727254e60c.jpg

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

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

    b114da9bfc42c9f33a4da17869ff0dc9140.jpg

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

    1d26a1bc70f8bd100b04ff1819b7db53e8f.jpg

第二:修改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

    a0f29d580f8668d5c04378780d53ba02c4b.jpg

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

      5a425216725ffd098b87f55a639186473de.jpg

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

 

 

 

 

 

转载于:https://my.oschina.net/u/3973611/blog/2208138

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值