说到写 Java,想必做 Java 开发的童鞋,蛮多都是会用 IntelliJ,Eclipse 或是 Netbeans。许多童鞋也许会问,VS Code 也能写 Java? 是的,没错,VS Code 可以写 Java,而且有着很好的开发体验。特别对于多语言开发者来说,如果能在同一个 IDE 或是编辑器编写多种语言,岂不是很方便?楼主在微软近六年,除了 C#,主要写 TypeScript,还写过 PHP,Python,Java 等语言。自从有了 VS Code,再也不用在不同的 IDE/编辑器之间切换了。那么,我们就来看看 VS Code 中有哪些好用的 Java 插件。
1
notreami 2019-02-18 10:02:03 +08:00 3
放着 IntelliJ,Eclipse 或是 Netbeans 不用,推广这类玩具是什么想法?
|
2
formulahendry OP @notreami 所以你觉得如果不是 IDE,其他的就是玩具吗? 不知道你玩过其他的玩具吗
|
3
zhuangzhuang1988 2019-02-18 10:09:28 +08:00
vscode 只写前端
别的还是用专业的好 |
4
zzf2017 2019-02-18 10:09:40 +08:00 1
java 我只推荐 IntelliJ,其他的都很难用,vscode,真的不太适合写 java
|
5
Trumeet 2019-02-18 10:11:32 +08:00 via Android
Java 我用 Idea ((
|
6
785999159 2019-02-18 10:21:08 +08:00
无脑推荐 idea 的真的是够了。。。电脑又不是没有空间多装几个软件。。
每个工具都有自己好用的地方,我也觉得 vscode 不错,平时 idea 用来写 client side 的程序,javaee 和 web 用 netbeans 方便很多,leetcode 和 toy code 当然还是用 vscode 来啦 |
7
nana77 2019-02-18 10:31:34 +08:00
好像有 bug。 有中文字符编译不过,智能提示经常崩溃。
|
8
nana77 2019-02-18 10:32:42 +08:00
vscode 我用来写 C++ 感觉还行。 可能我初学 java,很多地方还不熟悉,目前用 idea,eclipse 入门方便点。
|
9
anyele 2019-02-18 10:38:20 +08:00
没必要这么折腾, 本末倒置
|
10
sonyxperia 2019-02-18 10:42:58 +08:00 8
@785999159 #6 我觉得写 Java 无脑推荐 idea 并没有错
楼主这种去 vscode 里写 Java 才叫「无脑推荐」 。 |
11
NoKey 2019-02-18 10:48:21 +08:00
vscode 用来临时修修改改,轻量级用一下还行
公司项目级别的使用,还是使用常规 ide 吧 vscode 我也在用 但是,有装那一堆插件把 vscode 调整来适应开发的时间。。。代码都写多少了 国外使劲推,因为 jetbrains 那一堆卖的蛮贵的 国内没这个问题,有稳定的 ide 就用 ide 吧,别去折腾了 |
12
xianxiaobo 2019-02-18 10:54:35 +08:00
本来用 vscode 就是因为它是轻量级,装一堆插件变得又重又慢来写 java,为什么不用 IntelliJ 呢
|
13
x7395759 2019-02-18 10:58:58 +08:00
可以写,但是没必要。
专业的工具干专业的事情。 |
14
Malthael 2019-02-18 11:01:43 +08:00
把玩玩具的时间去多看点源码,文档不好吗?
|
15
passerbytiny 2019-02-18 11:01:55 +08:00
别得不说,Language Support for Java(TM) by Red Hat 这一个一启动,资源占用就赶上 eclipse 了。eclpse 加无插件 vs code 才是正道。
|
16
johnnie502 2019-02-18 11:02:03 +08:00 via Android
好了,知道你是微软的了
|
17
red0range 2019-02-18 11:03:14 +08:00
我拒绝
me idea use desu |
18
eternaldzw 2019-02-18 11:45:23 +08:00
无所谓了,反正马上 vs 就能写 java 了。idea 在 java 现有的编辑器算好的,不过跟 vs 比还是差一点。
|
19
notreami 2019-02-18 11:49:22 +08:00 1
@formulahendry 玩过,后续发现,这类玩具就像学走路时选鞋子。
各种闪亮、DIY 的鞋子,对走路没啥帮助,反而容易分散注意力去探索鞋子。 忙着低头看鞋子,而浪费了一路风景,本末倒置的事,能不被吐槽嘛? |
20
thisisgpy 2019-02-18 11:53:23 +08:00
正版购入了 Idea 和 WS,没有使用 VSCode 的需求
|
21
V2exUser 2019-02-18 12:46:09 +08:00 via Android
没必要,让专业的工具做专业的事情
|
22
gejun123456 2019-02-18 13:27:26 +08:00 via iPhone 1
支持 intellij 多个竞争对手对我们程序员是好事
|
23
daimazha 2019-02-18 14:15:20 +08:00
用 VS Code 写 Java 来做 LeetCode 的题。 最近 LeetCode 的插件很棒👍。
|
24
james2013 2019-02-18 15:18:24 +08:00
IDEA 使用者提醒您:
工具千万种,好用第一条; 使用不规范,码农二行泪 |
25
yiyi11 2019-02-18 16:07:53 +08:00
不是不想用,但是 idea 真的......太强了(起码针对 java )。
|
26
rayingecho 2019-02-18 16:08:42 +08:00
说得好, 我用 IDEA
|
27
olaloong 2019-02-18 16:15:11 +08:00 via Android 1
VS Code 写 Java 的中文编码问题上次搞了半天没搞定,弃了
|
28
Morhop45 2019-02-18 16:32:16 +08:00 1
楼主不是说了吗,同时写多个语言可以只用一个 IDE/编辑器,有时候确实挺方便的啊,也很😎啊。至于 IDEA,写 Java 的有多少人会不了解啊,大家都知道很强大啊。
|
29
VDimos 2019-02-18 16:35:14 +08:00 via Android
vscode 始终只是编辑器,谢谢脚本还不错,idea 之类的始终是集成开发环境,是不能比的
|
30
blackmirror 2019-02-18 16:41:32 +08:00
vscode 写 java 怕是工作太不饱和,或者喜欢自虐
|
31
formulahendry OP @passerbytiny 因为 VSCode Java 背后的一些技术和 Eclipse 是一样的🤣
|
32
formulahendry OP @olaloong 具体是什么问题?
|
33
formulahendry OP @daimazha 哈哈,的确! LeetCode 插件太好用了!!
|
34
formulahendry OP @eternaldzw 啊,哪里说 VS 要支持 Java 了,我怎么不知道🤣
|
35
Rehtt 2019-02-18 17:54:27 +08:00 via Android
还是用 idea 舒服,在 idea 上写 python php go 等只需要装个插件就行了
|
36
Kaiv2 2019-02-18 18:06:36 +08:00
不如来一篇文章介绍下🐶
|
37
formulahendry OP @Kaiv2 再介绍啥?
|
38
formulahendry OP @gejun123456 是的!
|
39
formulahendry OP @thisisgpy 给用正版的童鞋点赞
|
40
formulahendry OP @Rehtt 写 PHP 的话 ,PHPStorm 的确很赞~ Python 和 Go 的话,在 VSCode 的支持还是不错的
|
41
formulahendry OP @olaloong 具体是啥问题? 我可以让同事看看
|
43
formulahendry OP @james2013 哈哈哈
|
44
formulahendry OP @zhuangzhuang1988 vscode 写 JS, Python, Go 等都是不错的
|
45
Morhop45 2019-02-18 20:17:05 +08:00
|
46
eternaldzw 2019-02-18 20:32:58 +08:00
@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 2019-02-18 20:49:10 +08:00 via Android
@formulahendry 时间比较早记不太清了,好像是 utf-8 编码的代码文件运行时中文怎么都是乱码,以 uft-8 with bom 保存再运行就没问题。但 utf-8 with bom 的代码文件用 idea 打开显示正常,运行时又会报错非法字符。
|
48
formulahendry OP |
49
formulahendry OP @eternaldzw 哈哈,果然很多童鞋是被网上类似的文章和标题误导了。 据我所知,VS 并没有官方做 Java 支持的 plan。那个 demo (就是坐我隔壁同事做的)里面,在 VS 的 Java 功能,都是通过 Live Share 从 VS Code 传递给 VS 的, 所有的实际功能都是在 VS Code 里,VS 可以说只是个镜像。
|
50
olaloong 2019-02-18 21:45:53 +08:00
|
51
zhuangzhuang1988 2019-02-18 23:23:37 +08:00
@formulahendry python 还是 pycharm vscode 很厉害
无脑吹就不行了。 |
52
formulahendry OP @zhuangzhuang1988 pycharm 是可以
没有素质就不行了 :) |
53
formulahendry OP @sonyxperia 无脑推荐 idea 当然可以
但像你这样言语上没有素质,那的确是。。:) |
54
tairan2006 2019-02-19 00:41:07 +08:00
没必要折腾这些浪费时间,乖乖用 IDE 就好
|
55
sonyxperia 2019-02-19 08:34:19 +08:00
@formulahendry #52 憋这么就只能扯压根扯不到的「没有素质」上,看来你的推荐实际上真够无脑的。
|
56
formulahendry OP @sonyxperia 哈哈哈哈哈哈哈,看来你自我感觉还真好,还觉得你自己是有素质的。 现在感觉你的逻辑也有问题了
|
57
azh7138m 2019-02-19 10:47:33 +08:00
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 OP @azh7138m 看一下所有的插件列表? 蛮多插件依赖这个 vscjava.vscode-java-debug,所以会一起安装
|
59
azh7138m 2019-02-19 11:30:40 +08:00 via Android
@formulahendry 今天突然多了俩 java 的插件,我一个前端开发。。。也不装这些东西的啊
|
60
formulahendry OP @azh7138m 所有的插件都的依赖都看过吗?有些插件会层层依赖其他插件的。 如果真的是自动装的,那就是个大问题了!! 爆 issue 给 https://github.com/Microsoft/vscode , 可能是大 bug。 我看你装的还是比较新的 insider 版本
|
61
azh7138m 2019-02-19 11:54:04 +08:00 via Android
@formulahendry 我都没配置 jre 的。禁用的插件也可以自己更新自己然后增加依赖,进而自动安装别的插件吗?
|
62
livepps 2019-02-19 12:30:01 +08:00 via Android
别别的不说,vscode bug 挺多的,有时候会卡死,不知道装了什么插件导致的,总共才装了不超过 10 个插件。,吃的内存也不少,大几百 M。
|
63
hujianxin 2019-02-19 13:11:48 +08:00
@passerbytiny 无插件的话,vscode 比 sublime 没啥优势吧,反而 sublime 更轻量
|
64
formulahendry OP |
65
azh7138m 2019-02-19 14:29:00 +08:00
@formulahendry 看上去是 vscjava.vscode-java-pack,但是这个是一直处于 disable 状态的。
我只开了 ESLint TSLint MPE hexdump TOC MDX 这几个的,而且我没有配置 jre,如果之前我有开启 /安装的话,vscode 每次启动都会报错找不到 jre。 |
66
hasbug 2019-02-19 14:36:57 +08:00
···
|
67
formulahendry OP @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 2019-02-19 15:57:05 +08:00 via Android
@formulahendry 不是。。。我是 2019 年第一次看到找不到 jre 的提示,我没有配置过 jre,说明这个插件是今天自己出来的。。。
|
69
Edsie 2019-02-19 16:39:35 +08:00
还是 Idea 吧,vs 适合用来随便写点的场景
|
70
xpresslink 2019-02-19 16:58:02 +08:00
港真,VSC 只能算是一个文本编辑器级别。CS 学生,业余小白入门这类情况,写个算法之类的最多管理 10 来个文件,用 VSC 确实可以,而且能更多接触理解 java 环境。但是不夸张地说,开发 springboot 等大型多人协作项目的 java 程序员要用 VSC 就是一种自虐行为,在 idea 里面集成调试,管理上万个文件,maven,版本控制,要是不集成在 IDE 中真的不能想象。真的只有 idea 目前做得最好,大大提高了效率,用过的人自然知道我在说什么。
|
71
formulahendry OP @azh7138m java-pack 是 disable 的, 但其他 java 插件是 enable 的?
|
72
azh7138m 2019-02-19 17:13:21 +08:00
@formulahendry 至少在 20190101-20190218 我只开启了 6 个插件 ESLint TSLint MPE hexdump TOC MDX
在今天之前,都没有缺少 jre 配置的错误提示,是今天突然出现的, 然后发现多了几个被启用的 java 插件 @xpresslink node_modules 里面文件也不止几 w 个了吧 :) |
73
ttok 2019-02-19 17:43:59 +08:00 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 2019-02-19 17:48:10 +08:00 1
趁开会还没正式开始,再来加上一句来自前同事的一句签名:我的未来我不知道在哪里,但是我知道 ide 的未来一定是 Visual Studio Code。好了,去会议室看投影去了。
|
75
shuangyeying 2019-02-19 19:37:16 +08:00 1
大神不管用什么写都是大神,像自己这样小白离开 IDE 就不会写的只能选顺手的 。
|
76
formulahendry OP |
77
formulahendry OP |
78
bwangel 2019-02-19 22:11:21 +08:00
刚刚用 Goland 遇到了一个问题,升级了一下就好了。我之前用 Linux,vim 从来没有享受过这种待遇,感觉真爽。
|
79
ttok 2019-02-20 09:25:55 +08:00
@formulahendry 认真看了下楼主,原来楼主是微软的啊,我晕倒。难怪我说有人在 V2EX 推荐 vscode。原来是微软的人啊。我身边推荐 vscode 同事很少啊。
这里这么传图片啊。 |
80
formulahendry OP |
81
ttok 2019-02-20 11:36:41 +08:00
@formulahendry 这样啊,准备出书<Visual Studio Code 入门与提高>
有读者吧哈哈哈 |
82
formulahendry OP @ttok 哈哈哈,肯定有
|
83
ttok 2019-02-21 10:40:04 +08:00
@formulahendry 目前最缺的是 jsp 插件!!! vscode 写 jsp,自动完成和代码格式化都很痛苦!
|
84
azh7138m 2019-02-21 17:15:31 +08:00
今天又多了一个 visualstudioexptteam.vscodeintellicode
肯定是 vsc 先动的手,这次我确定是它自己安装的插件 |
85
azh7138m 2019-02-21 17:19:24 +08:00
从我的角度来看,最近 vsc 经常写着写着 langserver 就突然爆炸了,然后重新初始化,贼浪费时间
|
86
formulahendry OP |
87
azh7138m 2019-02-21 19:21:06 +08:00
@formulahendry 那可真是有趣,被禁用的扩展是可以更新的,增加的依赖也会被安装
|
88
ttok 2019-02-21 19:42:35 +08:00 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 2019-02-21 19:46:31 +08:00
@azh7138m Java Extension Pack 这个是 N 个插件集合在一起的包。只要 Java Extension Pack 没有禁用,就会自动升级,这没毛病。如果你不想这样,你可以把 卸载 Java Extension Pack 包。然后手动一个一个安装 Java Extension Pack 里面包含的包。按自己的需要
另外 最近 vsc 经常写着写着 langserver 就突然爆炸了, 表示从没碰到过。 |
90
azh7138m 2019-02-21 20:11:49 +08:00 via Android
|
91
formulahendry OP @azh7138m 如果觉得”被禁用的插件会自动升级“是不合适的设计,或者说是 bug,一个比较好的方式是去开个 issue,给出详细的 repro steps: https://github.com/microsoft/vscode/issues . 或者看看有木有已经有 issue 了
|
93
yol 2019-03-13 11:24:28 +08:00
我也想说 vs code 真的爽,比 idea 好用多了,eclipse 和 vs code 是我常用的 java 编辑器
|