一、问题发现

       某天,我在学习java反射机制的时候,在Debian中使用vscode编写了一个简单的java反射机制项目,在编译项目代码的时候出现如下错误:

  Exception in thread "main" java.lang.NoSuchMethodError

      进行断点调试,调试进入类中的某个方法时中断了,检查代码却发现没有写错,把代码复制到IDEA中运行也没有报错,到网上搜索该错误,大部分回答都说是多个java版本之间冲突导致的错误,但是我的Debian中只安装了一个Java 11,此时我怀疑应该是vscode的插件在调用jdk时出现了bug导致了这个错误。

二、问题解决

  1. 直接重写修改vscode的java配置,指定jdk版本与路径,我的是java 11。

  2. 打开vscode的设置,搜索javahome,点击打开settings.json,如下:

     

     

  3. 修改java运行环境,如下,注意path只要jdk的安装目录即可,不要具体到java的可执行文件。

  4. 再次编译项目,问题解决。