关于vscode java项目 “找不到或者无法加载主类”错误与vscode工作区设置

关于vscode

最近也是偶然的机会了解到了vscode这个编辑器,相比于传统的IDE,它有很多我喜欢的特点,首先是轻量级,相比于Visual Studio,pycharm等IDE,它只有40多Mb的大小,下载和安装都很方便。其次就是它是一个编辑器,是通过插件来实现各种功能,意味着你可以通过vscode这一个软件安装不同的插件来实现编写不同代码的需求,而不是每一种语言都要下载一种IDE。最后就是它是微软的一款开源的软件,更新速度快,质量也有保证。

错误: 找不到或无法加载主类 App

下载安装好vscode,并且安装好相关的插件,我装备新建了一个“hellow java”文件试一试,但是却发现运行会报错“找不到或无法加载主类”。
找不到或无法加载主类
我尝试在cmd里编译和运行,可以成功编译,但是运行时依然报错。
cmd编译运行
看了网上很多教程,最后发现更换编译和运行方式以后就可以了。
在这里插入图片描述
再来看看源代码

package app;
public class App {
    public static void main(String[] args) throws Exception {
        System.out.println("Hello Java");
    }
}

原来问题出在了第一行,这里就是java的package机制了,java中package其实是定义了一个命名空间,防止命名冲突,而如果在源文件开头声明package的话就是要新建一个文件夹然后将编译好的源文件都放在里边,那么这里就不能用原来的编译和运行方式了。
在俩种不同的编译方式

vscode设置

但是我们总不能每一个源文件都自己这样编译和运行,那样太麻烦了,那么怎么改变vscode默认的编译运行方式呢?这里需要设置一些code_runner插件。
在vscode中,设置分俩种,一种是用户设置,就是设置了以后,你所以的项目通过vscode运行时都使用这种设置;而另一种则是工作区设置,这种设置只作用于你当前的项目
首先是用户设置,打开右下角设置
在这里插入图片描述
下拉选择“在setting.json中编辑”
在这里插入图片描述
然后在里边加入这段代码,这是code_runner插件的设置代码,可以在官方文档中看到,链接: code_runner 官方文档.

"code-runner.executorMap": {
   // "javascript": "node",
   // "php": "C:\\php\\php.exe",
   // "python": "python",
   // "perl": "perl",
   // "ruby": "C:\\Ruby23-x64\\bin\\ruby.exe",
   // "go": "go run",
   // "html": "\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\"",
   "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
   // "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
}

这里可以设置不同语言的安装目录,默认的话大部分都是在path中查找,其中java和c可以设置编译和运行的方式。其中的参数可以自己选择

upported customized parameters 自定义参数
$workspaceRoot: The path of the folder opened in VS Code
VS Code中打开的文件夹的路径
$dir: The directory of the code file being run
正在运行的代码文件的目录
$dirWithoutTrailingSlash: The directory of the code file being run without a trailing slash
正在运行的代码文件的目录,没有尾部斜杠
$fullFileName: The full name of the code file being run
正在运行的代码文件的全名
$fileName: The base name of the code file being run, that is the file without the directory
正在运行的代码文件的基本名称,即没有目录的文件
$fileNameWithoutExt: The base name of the code file being run without its extension
没有扩展名的情况下运行的代码文件的基本名称
$driveLetter: The drive letter of the code file being run (Windows only)
正在运行的代码文件的驱动器号(仅限Windows)
$pythonPath: The path of Python interpreter (set by Python: Select Interpreter command)

由于我这里只需要设置java的编译方式,别的选择默认就好,所以就把别的都注释掉了,只把java的命令改成了

	"java": "cd $dir && javac -d. $fileName && java app.$fileNameWithoutExt",

这里的-d是更改编译目录,而"."代表是在当前目录下,虽然不加这个命令也是默认生成在当前目录下,但是如果文件里边有package关键字的话,这个命令可以自动在当前目录下生成package文件夹,而后边的运行也需要加上package名字。
这样就可以成功运行啦!
在这里插入图片描述
可以看到
编译方式被改变了,而且程序也是成功运行。
大家可以注意一些这里的用户设置setting.json 文件的储存位置。
在这里插入图片描述

但是这种方式有一个问题,就是我不同项目的package路径不一样,统一设置的话肯定会出问题,那么这里就用到工作区设置了。

首先创建一个新java项目(如何创建看我的另一篇文章)
然后进入工作区设置
在这里插入图片描述
然后选择“setting.json”
在这里插入图片描述
这样就会在当前文件夹(工作区)生成一个.vscode文件夹,里边有一个setting.json文件,然后像上边一样,把那部分文件复制进来覆盖默认设置即可。
在这里插入图片描述
这样这里的设置就只对当前文件内的内容有效了。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值