首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

Java 的童鞋来看看~ VS Code 中那些好用的 Java 插件

  •  
  •   formulahendry · 241 天前 · 6642 次点击
    这是一个创建于 241 天前的主题,其中的信息可能已经有所发展或是发生改变。

    说到写 Java,想必做 Java 开发的童鞋,蛮多都是会用 IntelliJ,Eclipse 或是 Netbeans。许多童鞋也许会问,VS Code 也能写 Java? 是的,没错,VS Code 可以写 Java,而且有着很好的开发体验。特别对于多语言开发者来说,如果能在同一个 IDE 或是编辑器编写多种语言,岂不是很方便?楼主在微软近六年,除了 C#,主要写 TypeScript,还写过 PHP,Python,Java 等语言。自从有了 VS Code,再也不用在不同的 IDE/编辑器之间切换了。那么,我们就来看看 VS Code 中有哪些好用的 Java 插件。

    VS Code 中有哪些好用的 Java 插件?

    第 1 条附言  ·  241 天前
    一天下来,竟然有了这么多回复,哈哈!
    看了下评论,大多数童鞋都是有素质的。
    就如 Morhop45 童鞋说的,同时写多个语言可以只用一个 IDE/编辑器,在这个使用场景下,有时候确实挺方便的啊~
    还不如说,做 Spring 的开发,IDEA 的旗舰版就是要收费啦,相信大多数童鞋都是用的正版。不过 VSCode 就是免费的,而且 VSCode 也是作为 Spring 官方钦定的开发工具之一:
    https://spring.io/tools
    93 回复  |  直到 2019-03-13 11:24:28 +08:00
        1
    notreami   241 天前   ♥ 3
    放着 IntelliJ,Eclipse 或是 Netbeans 不用,推广这类玩具是什么想法?
        2
    formulahendry   241 天前 via Android
    @notreami 所以你觉得如果不是 IDE,其他的就是玩具吗? 不知道你玩过其他的玩具吗
        3
    zhuangzhuang1988   241 天前
    vscode 只写前端
    别的还是用专业的好
        4
    zzf2017   241 天前   ♥ 1
    java 我只推荐 IntelliJ,其他的都很难用,vscode,真的不太适合写 java
        5
    Trumeet   241 天前 via Android
    Java 我用 Idea ((
        6
    785999159   241 天前
    无脑推荐 idea 的真的是够了。。。电脑又不是没有空间多装几个软件。。
    每个工具都有自己好用的地方,我也觉得 vscode 不错,平时 idea 用来写 client side 的程序,javaee 和 web 用 netbeans 方便很多,leetcode 和 toy code 当然还是用 vscode 来啦
        7
    nana77   241 天前
    好像有 bug。 有中文字符编译不过,智能提示经常崩溃。
        8
    nana77   241 天前
    vscode 我用来写 C++ 感觉还行。 可能我初学 java,很多地方还不熟悉,目前用 idea,eclipse 入门方便点。
        9
    anyele   241 天前
    没必要这么折腾, 本末倒置
        10
    sonyxperia   241 天前   ♥ 8
    @785999159 #6 我觉得写 Java 无脑推荐 idea 并没有错
    楼主这种去 vscode 里写 Java 才叫「无脑推荐」 。
        11
    NoKey   241 天前
    vscode 用来临时修修改改,轻量级用一下还行
    公司项目级别的使用,还是使用常规 ide 吧
    vscode 我也在用
    但是,有装那一堆插件把 vscode 调整来适应开发的时间。。。代码都写多少了
    国外使劲推,因为 jetbrains 那一堆卖的蛮贵的
    国内没这个问题,有稳定的 ide 就用 ide 吧,别去折腾了
        12
    xianxiaobo   241 天前
    本来用 vscode 就是因为它是轻量级,装一堆插件变得又重又慢来写 java,为什么不用 IntelliJ 呢
        13
    x7395759   241 天前
    可以写,但是没必要。

    专业的工具干专业的事情。
        14
    Malthael   241 天前
    把玩玩具的时间去多看点源码,文档不好吗?
        15
    passerbytiny   241 天前
    别得不说,Language Support for Java(TM) by Red Hat 这一个一启动,资源占用就赶上 eclipse 了。eclpse 加无插件 vs code 才是正道。
        16
    johnnie502   241 天前 via Android
    好了,知道你是微软的了
        17
    red0range   241 天前
    我拒绝

    me idea use desu
        18
    eternaldzw   241 天前
    无所谓了,反正马上 vs 就能写 java 了。idea 在 java 现有的编辑器算好的,不过跟 vs 比还是差一点。
        19
    notreami   241 天前   ♥ 1
    @formulahendry 玩过,后续发现,这类玩具就像学走路时选鞋子。
    各种闪亮、DIY 的鞋子,对走路没啥帮助,反而容易分散注意力去探索鞋子。

    忙着低头看鞋子,而浪费了一路风景,本末倒置的事,能不被吐槽嘛?
        20
    thisisgpy   241 天前
    正版购入了 Idea 和 WS,没有使用 VSCode 的需求
        21
    V2exUser   241 天前 via Android
    没必要,让专业的工具做专业的事情
        22
    gejun123456   241 天前 via iPhone   ♥ 1
    支持 intellij 多个竞争对手对我们程序员是好事
        23
    daimazha   241 天前
    用 VS Code 写 Java 来做 LeetCode 的题。 最近 LeetCode 的插件很棒👍。
        24
    james2013   241 天前
    IDEA 使用者提醒您:
    工具千万种,好用第一条;
    使用不规范,码农二行泪
        25
    yiyi11   241 天前
    不是不想用,但是 idea 真的......太强了(起码针对 java )。
        26
    rayingecho   241 天前
    说得好, 我用 IDEA
        27
    olaloong   241 天前 via Android   ♥ 1
    VS Code 写 Java 的中文编码问题上次搞了半天没搞定,弃了
        28
    Morhop45   241 天前   ♥ 1
    楼主不是说了吗,同时写多个语言可以只用一个 IDE/编辑器,有时候确实挺方便的啊,也很😎啊。至于 IDEA,写 Java 的有多少人会不了解啊,大家都知道很强大啊。
        29
    VDimos   241 天前 via Android
    vscode 始终只是编辑器,谢谢脚本还不错,idea 之类的始终是集成开发环境,是不能比的
        30
    blackmirror   241 天前
    vscode 写 java 怕是工作太不饱和,或者喜欢自虐
        31
    formulahendry   241 天前 via Android
    @passerbytiny 因为 VSCode Java 背后的一些技术和 Eclipse 是一样的🤣
        32
    formulahendry   241 天前 via Android
    @olaloong 具体是什么问题?
        33
    formulahendry   241 天前 via Android
    @daimazha 哈哈,的确! LeetCode 插件太好用了!!
        34
    formulahendry   241 天前 via Android
    @eternaldzw 啊,哪里说 VS 要支持 Java 了,我怎么不知道🤣
        35
    Rehtt   241 天前 via Android
    还是用 idea 舒服,在 idea 上写 python php go 等只需要装个插件就行了
        36
    Kaiv2   241 天前
    不如来一篇文章介绍下🐶
        37
    formulahendry   241 天前 via Android
    @Kaiv2 再介绍啥?
        38
    formulahendry   241 天前 via Android
    @gejun123456 是的!
        39
    formulahendry   241 天前 via Android
    @thisisgpy 给用正版的童鞋点赞
        40
    formulahendry   241 天前 via Android
    @Rehtt 写 PHP 的话 ,PHPStorm 的确很赞~ Python 和 Go 的话,在 VSCode 的支持还是不错的
        41
    formulahendry   241 天前 via Android
    @olaloong 具体是啥问题? 我可以让同事看看
        42
    Kaiv2   240 天前
    @olaloong 是依赖 jar 包使用 gbk 编码打开乱码吗?我这有这个问题
        43
    formulahendry   240 天前
    @james2013 哈哈哈
        44
    formulahendry   240 天前
    @zhuangzhuang1988 vscode 写 JS, Python, Go 等都是不错的
        45
    Morhop45   240 天前
    @olaloong 是这个 issue 吗,好像已经有修复了
    https://github.com/redhat-developer/vscode-java/issues/479
        46
    eternaldzw   240 天前
    @formulahendry 对此,潘正磊如此说道:“我做 Visual Studio 已经很多年了,经常会被问到一个问题,那就是 Visual Studio 什么时候能支持 Java ?今天大家第一次先睹为快。Visual Studio Live Share 其中包含了几个相当重要的特性,首先便是上述在不同的操作系统上分别使用 Visual Studio 和 VS Code 来协作;其次,通过 Live Share  可以任意调用项目中的其他文件,它不是单纯的文件共享,我们可以使用 Go to Definition 来进行代码跳转;更重要的是,它使用同一个 Debug Session,在多个不同的设备里,可实时显示变量值的变更、进行调试;最令人激动的是,它支持多种语言,不论你使用何种语言,你都可以使用它来进行团队合作。今天我们在此演示的是 Java,但对 Python、C# 等语言都有非常强大的支持,因此这个功能并不局限于某种语言。”
        47
    olaloong   240 天前 via Android
    @formulahendry 时间比较早记不太清了,好像是 utf-8 编码的代码文件运行时中文怎么都是乱码,以 uft-8 with bom 保存再运行就没问题。但 utf-8 with bom 的代码文件用 idea 打开显示正常,运行时又会报错非法字符。
        49
    formulahendry   240 天前
    @eternaldzw 哈哈,果然很多童鞋是被网上类似的文章和标题误导了。 据我所知,VS 并没有官方做 Java 支持的 plan。那个 demo (就是坐我隔壁同事做的)里面,在 VS 的 Java 功能,都是通过 Live Share 从 VS Code 传递给 VS 的, 所有的实际功能都是在 VS Code 里,VS 可以说只是个镜像。
        50
    olaloong   240 天前
    @Morhop45 @formulahendry
    应该就是这个问题,用最新版试了下问题还在,期待尽快修复
        51
    zhuangzhuang1988   240 天前
    @formulahendry python 还是 pycharm vscode 很厉害
    无脑吹就不行了。
        52
    formulahendry   240 天前
    @zhuangzhuang1988 pycharm 是可以
    没有素质就不行了 :)
        53
    formulahendry   240 天前
    @sonyxperia 无脑推荐 idea 当然可以
    但像你这样言语上没有素质,那的确是。。:)
        54
    tairan2006   240 天前
    没必要折腾这些浪费时间,乖乖用 IDE 就好
        55
    sonyxperia   240 天前
    @formulahendry #52 憋这么就只能扯压根扯不到的「没有素质」上,看来你的推荐实际上真够无脑的。
        56
    formulahendry   240 天前 via Android
    @sonyxperia 哈哈哈哈哈哈哈,看来你自我感觉还真好,还觉得你自己是有素质的。 现在感觉你的逻辑也有问题了
        57
    azh7138m   240 天前
    Version: 1.32.0-insider
    Commit: 003521e715f2dbcf4f98be99a923097505859954
    Date: 2019-02-15T06:13:33.916Z
    Electron: 3.1.3
    Chrome: 66.0.3359.181
    Node.js: 10.2.0
    V8: 6.6.346.32
    OS: Linux x64 4.15.0-29deepin-generic

    突然被安装了 vscjava.vscode-java-debug,我没有任何操作,怎么就被强奸了........
        58
    formulahendry   240 天前
    @azh7138m 看一下所有的插件列表? 蛮多插件依赖这个 vscjava.vscode-java-debug,所以会一起安装
        59
    azh7138m   240 天前 via Android
    @formulahendry 今天突然多了俩 java 的插件,我一个前端开发。。。也不装这些东西的啊
        60
    formulahendry   240 天前
    @azh7138m 所有的插件都的依赖都看过吗?有些插件会层层依赖其他插件的。 如果真的是自动装的,那就是个大问题了!! 爆 issue 给 https://github.com/Microsoft/vscode , 可能是大 bug。 我看你装的还是比较新的 insider 版本
        61
    azh7138m   240 天前 via Android
    @formulahendry 我都没配置 jre 的。禁用的插件也可以自己更新自己然后增加依赖,进而自动安装别的插件吗?
        62
    livepps   240 天前 via Android
    别别的不说,vscode bug 挺多的,有时候会卡死,不知道装了什么插件导致的,总共才装了不超过 10 个插件。,吃的内存也不少,大几百 M。
        63
    hujianxin   240 天前
    @passerbytiny 无插件的话,vscode 比 sublime 没啥优势吧,反而 sublime 更轻量
        64
    formulahendry   240 天前
    @azh7138m 这样应该是不能的,如果是,我个人觉得是个 bug。
    你可以看看有没有类似的插件,有很多的依赖

        65
    azh7138m   240 天前
    @formulahendry 看上去是 vscjava.vscode-java-pack,但是这个是一直处于 disable 状态的。
    我只开了 ESLint TSLint MPE hexdump TOC MDX 这几个的,而且我没有配置 jre,如果之前我有开启 /安装的话,vscode 每次启动都会报错找不到 jre。
        66
    hasbug   240 天前
    ···
        67
    formulahendry   240 天前
    @azh7138m 那就对了呀。在 2017 年,这个插件第一版本,就已经包含 vscjava.vscode-java-debug 了: https://github.com/Microsoft/vscode-java-pack/commit/443110506a409b8171cdd7c7d6ecc8c3df7a7d06

    所以,没有任何问题。在第一次安装 vscjava.vscode-java-pack 的时候,一定是会把 vscjava.vscode-java-debug 一起安装的。
        68
    azh7138m   240 天前 via Android
    @formulahendry 不是。。。我是 2019 年第一次看到找不到 jre 的提示,我没有配置过 jre,说明这个插件是今天自己出来的。。。
        69
    Edsie   240 天前
    还是 Idea 吧,vs 适合用来随便写点的场景
        70
    xpresslink   240 天前
    港真,VSC 只能算是一个文本编辑器级别。CS 学生,业余小白入门这类情况,写个算法之类的最多管理 10 来个文件,用 VSC 确实可以,而且能更多接触理解 java 环境。但是不夸张地说,开发 springboot 等大型多人协作项目的 java 程序员要用 VSC 就是一种自虐行为,在 idea 里面集成调试,管理上万个文件,maven,版本控制,要是不集成在 IDE 中真的不能想象。真的只有 idea 目前做得最好,大大提高了效率,用过的人自然知道我在说什么。
        71
    formulahendry   240 天前
    @azh7138m java-pack 是 disable 的, 但其他 java 插件是 enable 的?
        72
    azh7138m   240 天前
    @formulahendry 至少在 20190101-20190218 我只开启了 6 个插件 ESLint TSLint MPE hexdump TOC MDX

    在今天之前,都没有缺少 jre 配置的错误提示,是今天突然出现的,
    然后发现多了几个被启用的 java 插件

    @xpresslink node_modules 里面文件也不止几 w 个了吧 :)
        73
    ttok   240 天前   ♥ 1
    支持楼主。
    没有深入使用 IntelliJ IDEA 和 vscode 的没有发言权。那些说 vscode 不如 IntelliJ IDEA 的,我是同意的,但是你要说 vscode 不如 IntelliJ IDEA,那是不同意的,因为这 2 个 ide (原谅我把 vscode 定位为 ide )是不能简单的对比的。所谓的适合自己的就是最好的。你可以永远沉溺在 IntelliJ IDEA 里,认为这个是最好的 java 开发 ide,这没有任何问题。
    简单说说本人:本人 2000 年开始从事开发,从 delphi5.0 开始做 windows 桌面开发。
    2015 年转 php,2016 年开始 java,从最初同事介绍用的 Eclipse 到再到另一位前同事介绍用 IntelliJ IDEA,我觉得 IntelliJ IDEA 是目前最完美的 java IDE 工具,这个是毫无疑问的,现在我还是这么认为。
    但是,我现在已经基本不用 IntelliJ IDEA 了,虽然我目前 50%左右的开发语言还是 Java,但是,基本我现在都是用 vscode 来开发 java 了,借用 csdn 一位哥们的话:如果你觉得 vscode 某些功能不好用,那么一定是你还不能熟练使用 vscode.现在的 vscode (Version 1.31.1 (1.31.1))用来开发 java , springboot, maven 这些没有任何问题,而且非常流畅,各类插件(基本都是相关官方专门为 vsocde 定制开发的插件)完全可以满足
    vscode 界面设计什么的和网上能百度到的优点咱就不多说了,咱就说说自己的一些体验了。
    vscode 的特点很明显,启动速度快,不卡顿,任何情况下不卡顿(我就没碰到过一次卡顿,无响应的情况,macos 的 xcode 碰到 N 次崩溃)。有人说占用资源低,但是我发现其实差不多。还有一个对我来讲很实用的就是各个项目间的快速切换:我开启多个 vscode,每个 vscode 打开一个项目。我写 php 时,按下全局快捷键,可以马上跳到 java 的主力项目,甚至我微信小程序也是用 vscode 做开发工具的,腾讯的微信开发者工具只是用来调试用。我可以快速在这些项目中切换。而不用专门为开发 php 装个 ide,为 java 又单独装一个,为微信小程序(目前用得不多)再装一个,为 delphi 开发(目前很少用)又得装一个,每个 ide 的快捷键都搞得头大。但是用了 vscode 这些问题都解决了。统一的界面,快捷键,这些快捷键还是我从 delphi 年代积累下来,用得习惯了的。vscode 在快捷键设计很贴心,每一个功能,都完全可以自定义快捷键。包括自带的功能还是插件带的功能。只要能找到的功能,快捷键随便你自己定义。可以支持双键模式,举个栗子:你可以定义先按 CTRL+CMD+ALT+H 后再按 CTRL+CMD+ALT+K 来启动书签插件的一个新增当前行为一个 bookmarks。当然这个不是 vscode 特有的,其他 ide 也完全可以实现。但是,我相信你用了 vscode 的这个功能和其他的比较你会喜欢上 TA 的。
    还有要提的是 vscode 的插件库,太丰富了。用过 vscode 的插件库,你不自觉的会跟 IntelliJ IDEA 和 eclipse 的 Marketplace 对比,你会有新的想法的。我现在装的插件可能有几十个吧。因为 vscode 可以设置每个插件在不同的 Wordspace 开启 /关闭,所以,我会在 php 的项目 Wordspace 里 Disable 掉那些 java 相关的插件,从而不担心这些无用的插件占用资源。这个操作很简单,直接复制之前的 php 项目的 vscode 配置文件,或者在插件库里输入 @enabled 显示当前已经启用的插件列表,再 Disabled(Wordspace)即可,他只关闭当前工作区的这个插件,所以不影响这个插件在其他工作区的启用 。
    还有要说的是 vscode 的调试方式,这个太人性化了,码农码,最擅长的就是码了,没想过自己码出调试环境的,一个 launch.json 可以让你自定义调试环境。想怎么干就怎么干。不用每次点开项目配置,设置运行参数。换一个环境测试时,又要改下这个配置,在 vscode 里,你直接在 launch.json 里面添加一段调试配置代码,CMD+S 马上生效,之前的调试配置都全部给你保存着呢。当前,这个其他的 ide 也是完全支持的,但是对比下,不瞒各位说,我还是喜欢 vscode 的这种模式。有事了,我不写了,对了那位说 maven 的,vscode 对 maven 支持是完美的,就一个 Maven for Java 插件解决,Microsoft 官方开发的,微软这家伙这几年在狂招 java 开发工程师。还要收购了 github
    哦,对了,说到 github 这个要说说 vsocde 跟 git 的完美集成了。
    在我用过有限的 ide 环境下,跟 github 对接最完美的我觉得应该是 vscode 了,自家的 ide 配上自家的 github。好用方便。如果你用 git 来做版本控制的话,我继续推荐 vscode.
    真有事先走了,不说了,下次分享 vsocde 开发 java 的插件吧。除了能百度到的那些必备的
        74
    ttok   240 天前   ♥ 1
    趁开会还没正式开始,再来加上一句来自前同事的一句签名:我的未来我不知道在哪里,但是我知道 ide 的未来一定是 Visual Studio Code。好了,去会议室看投影去了。
        75
    shuangyeying   239 天前   ♥ 1
    大神不管用什么写都是大神,像自己这样小白离开 IDE 就不会写的只能选顺手的 。
        76
    formulahendry   239 天前
    @ttok 感谢全面又中肯的评论!简直可以写一篇文章啦~ 哈哈
    有好的文章欢迎投稿到到专栏: https://zhuanlan.zhihu.com/vs-code :P
        77
    formulahendry   239 天前
    @azh7138m 哈哈哈,node_modules 笑出来声

    话说,被启用的 java 插件里,是所有都启动了,但 pack 没启用吗
        78
    bwangel   239 天前
    刚刚用 Goland 遇到了一个问题,升级了一下就好了。我之前用 Linux,vim 从来没有享受过这种待遇,感觉真爽。
        79
    ttok   239 天前
    @formulahendry 认真看了下楼主,原来楼主是微软的啊,我晕倒。难怪我说有人在 V2EX 推荐 vscode。原来是微软的人啊。我身边推荐 vscode 同事很少啊。
    这里这么传图片啊。
        80
    formulahendry   239 天前
    @ttok 看语言吧~ JS,Python,Go 等等用的还蛮多的

    图片的话,传到 https://imgur.com/ , 把 url 直接贴进来,就能显示了
        81
    ttok   239 天前
    @formulahendry 这样啊,准备出书<Visual Studio Code 入门与提高>
    有读者吧哈哈哈
        82
    formulahendry   238 天前 via Android
    @ttok 哈哈哈,肯定有
        83
    ttok   238 天前
    @formulahendry 目前最缺的是 jsp 插件!!! vscode 写 jsp,自动完成和代码格式化都很痛苦!
        84
    azh7138m   238 天前
    今天又多了一个 visualstudioexptteam.vscodeintellicode
    肯定是 vsc 先动的手,这次我确定是它自己安装的插件
        85
    azh7138m   238 天前
    从我的角度来看,最近 vsc 经常写着写着 langserver 就突然爆炸了,然后重新初始化,贼浪费时间
        87
    azh7138m   237 天前
    @formulahendry 那可真是有趣,被禁用的扩展是可以更新的,增加的依赖也会被安装
        88
    ttok   237 天前   ♥ 1
    @azh7138m 你一定安装了 Java Extension Pack
    vscjava.vscode-java-pack
    这个插件包,这个是微软官方的,昨天升级到 0.6.0,升级的内容就是增加了 vscodeintellicode
    我今天刚写了一篇 blog
    666,Visual Studio Code Java 今天更新了。新增 IntelliCode,AI 编码助手。
    https://blog.csdn.net/lqldir/article/details/87860734
    体验了 IntelliCode 一把。能飞了
        89
    ttok   237 天前
    @azh7138m Java Extension Pack 这个是 N 个插件集合在一起的包。只要 Java Extension Pack 没有禁用,就会自动升级,这没毛病。如果你不想这样,你可以把 卸载 Java Extension Pack 包。然后手动一个一个安装 Java Extension Pack 里面包含的包。按自己的需要
    另外
    最近 vsc 经常写着写着 langserver 就突然爆炸了,
    表示从没碰到过。
        90
    azh7138m   237 天前 via Android
    @ttok 我确定禁用了,我指的就是为什么被禁用的插件会自动升级

    hhhh,langserver 是 ts 的,其他语言之前没有,需要自己找
        91
    formulahendry   237 天前
    @azh7138m 如果觉得”被禁用的插件会自动升级“是不合适的设计,或者说是 bug,一个比较好的方式是去开个 issue,给出详细的 repro steps: https://github.com/microsoft/vscode/issues . 或者看看有木有已经有 issue 了
        92
    hrong   237 天前 via Android
    @red0range 英语日语觉得不错 (手动眼斜
        93
    yol   218 天前
    我也想说 vs code 真的爽,比 idea 好用多了,eclipse 和 vs code 是我常用的 java 编辑器
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3196 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 10:36 · PVG 18:36 · LAX 03:36 · JFK 06:36
    ♥ Do have faith in what you're doing.