vscode 运行 java 项目之解决“Build failed, do you want to continue”的问题

本文介绍了如何在VisualStudioCode中安装Java扩展并运行Java代码,虽然VSCode在轻量级和易用性上优于IDEA和Eclipse。然而,遇到部分代码错误时,它会弹出通知而非直接运行。通过自定义用户脚本和MutationObserver,作者提供了避开这个问题的方法,即自动点击错误通知中的Proceed按钮。
摘要由CSDN通过智能技术生成

Visual Studio Code运行 java 起来似乎比 IDEA 更轻量、比 eclipse 更友好,是不可多得的现代编译法宝。

安装好官方推荐的 java 扩展包后,就可以运行 java 代码了。功能 比 code runner 强,支持 gradle、maven、普通java项目,运行起来和真正的ide差不多,可以调试。需要整个项目编译起来,然后运行。

与 eclipse 一样,支持部分代码出错的情况下运行其余完好的代码,于是就可以像脚本一样使用java了。奈丝!

美中不足的是,如果部分代码有问题,就会弹窗,而不是直接运行:
在这里插入图片描述
需要手动点“proceed”才运行。

如何绕过呢?

很简单。

因为vscode界面基于electron,而electron本质上就是chrome浏览器,而浏览器的界面外观都是可以更改的 —— 通过自定义用户脚本、用户样式的形式。

安装 custom css 插件,然后(通过vscode的命令面板)打开设置 json,注入用户脚本文件:

settings.json

在这里插入图片描述

编辑用户脚本:

custom.js


function gc(e,n){return (n||d).getElementsByClassName(e)[0]};
// Create an observer instance
var observerNewDom = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
        if (mutation.type === 'childList') {
            // toast(mutation.target.tagName + " " + mutation.target.className)
            console.log('New element added:', mutation.target);
            var msg = gc("notification-list-item-message", mutation.target)
            var btn =  gc("monaco-button monaco-text-button", mutation.target)
            console.log('  :', btn, msg);
            if(btn && btn.innerText=='Proceed' && msg.innerText.includes("Build failed")) {
                btn.click()
            }
        }
    });
});

var notimer  = setInterval(()=>{
    // Configuration of the observerNewDom:
    var target = gc("notifications-toasts");
    if(target) {
        clearInterval(notimer)
        // toast(target)
        observerNewDom.observe(target, { childList: true });
    }
}, 5000);

这段代码也很简单,就是用了 MutationObserver ,来监听右下角的通知弹窗,然后自动点击“proceed”按钮。

保存后命令面板重载自定义css/js即可。使用这个插件时,建议手动备份 workbench.html(具体路径用everything搜索),不然损坏了的话,vscode一片空白。

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值