vscode编译java程序出现NoSuchMethodError的解决方法
一、问题发现
某天,我在学习java反射机制的时候,在Debian中使用vscode编写了一个简单的java反射机制项目,在编译项目代码的时候出现如下错误:
Exception in thread "main" java.lang.NoSuchMethodError
进行断点调试,调试进入类中的某个方法时中断了,检查代码却发现没有写错,把代码复制到IDEA中运行也没有报错,到网上搜索该错误,大部分回答都说是多个java版本之间冲突导致的错误,但是我的Debian中只安装了一个Java 11,此时我怀疑应该是vscode的插件在调用jdk时出现了bug导致了这个错误。
二、问题解决
-
直接重写修改vscode的java配置,指定jdk版本与路径,我的是java 11。
-
打开vscode的设置,搜索javahome,点击打开settings.json,如下:
-
修改java运行环境,如下,注意path只要jdk的安装目录即可,不要具体到java的可执行文件。
-
再次编译项目,问题解决。