JDK 编译 - 错误 "javac error IllegalArgumentException"



0. 报错信息

换了编译环境,然后线上原来运行正常的代码报错如下

java.lang.IllegalArgumentException: Name for argument type [java.lang.String]  
not available, and parameter name information not found in class file either. 

1. 解决方案

排查过程

因为这是由于更换了编译环境后出现的,所以使用老的编译环境编译上线测试,发现使用老的编译环境编译过的代码是对的。于是定位为编译问题,仔细检查了编译环境的区别,发现少了一个使用javac编译的时候,少了一个-g参数。据某博主和某些答主总结(见下面链接),是因为javac没有-g参数的时候会忽略某些spring中的参数,我暂时没有深入研究。留待以后祥查官方文档