VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

在写一个Java项目的时候,源代码保存在项目的src下的包中,打开包

单击右键使用run code(这个功能是code runner)提供的,发生以下错误

VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

 

 

 VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

 

 

 而且此时文件头部有package名字:

VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

 

 

 注意,此时是编译运行单个文件。。

解决办法:

  方法一:去掉头部的package一行,此时虽然会报错,但run code可以正常执行。

  方法二:在当前包内使用javac编译当前程序

  VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

 

 

   再在最外层包的那一层目录运行test,而且文件之间要用 . 分隔开

  VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

 

 

   成功。

  方法三:极为推荐的一种方式:

  不使用code runner提供的运行方式,安装插件debugger for Java

  VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

 

 

   在当前要运行的java程序中右键

VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

Run Java即可正常编译运行

 

 如果想要继续使用code runner编译运行程序,按我所知,单个文件利用方法二的办法执行就可以了。

 如果出现多个文件编译的情况,比如说下图我在sortCompare.java中调用了其他类的方法。这个时候编译单个文件是会报错的。

VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

 

 

 报错类似下面这样:

VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

 

 

 这个时候需要我们编译所有的文件,可以使用Javac *.java编译当前包内的所有文件。

VScode Java 运行提示 找不到或无法加载主类或错误: 找不到符号

 

 

 之后再返回最外层包的那一层利用目录运行sortCompare.class文件即可。如上图所示。

 

最后,搞了好久的code runner执行乱码的问题,

  1) 首先到用户设置中搜索设置Code-runner: Language ID To File Extension Map

      点击"在settings.json中编辑"

 

     2)添加如图所示代码, 保存即可   
"code-runner.runInTerminal": true,

  这是让code runner执行代码时在终端执行,不在输出那边输出。

上一篇:LeetCode练习——数学(快乐数)


下一篇:Code Runner for VS Code,下载量突破 3000 万!