winffee

VS Code Java 中的 JavaC 支持发布!

  •  
  •   winffee · Jan 9, 2025 · 4266 views
    This topic created in 627 days ago, the information mentioned may be changed or developed.

    作者:Nick Zhu

    大家新年好!我们很高兴宣布,Visual Studio Code Java 、JDT 和 JDT-LS 现已部分支持使用 Javac 作为底层编译器。这项支持是红帽和微软经过近一年合作的成果。

    此更改旨在确保对最新 Java 特性的及时支持,并使 VS Code 上的 Java 语言支持与常见构建工具(如 Maven 、Gradle )更加一致。许多用户希望获得更无缝的开箱即用开发体验,我们相信引入 Javac 是实现这一目标的重要第一步。

    用户可以从基于 Javac 的工具中获得以下好处:

    • 更符合 Java 规范的编译器正确性
    • 在 VS Code 和 Eclipse 中更快地支持新 Java 版本
    • 减少 JDT 和 JDT-LS 团队的维护负担
    • 更轻松地测试预览功能和尚未发布的 Java 版本

    请注意,基于 Javac 的 JDT 是 ECJ 编译器的另一选项,并非要完全替代 ECJ 。目前,VS Code Java 中的基于 Javac 的支持默认处于关闭状态,可以通过以下方式启用:

    1. 安装最新的预发布版本的 “Language Support for Java by Red Hat” 或 “Extension Pack for Java”。
    2. 在 VS Code 设置中将 "java.jdt.ls.javac.enabled" 设置为 "on"。以下是截图:javac setting
    3. 将 "java.jdt.ls.java.home" 指向您的 Java 23 安装目录。
    4. 重启 VS Code 。

    目前,基于 Javac 的 VS Code Java 支持在以下方面表现良好:编辑辅助、诊断、快速修复/重构、悬停提示、导航、索引、构建和类文件生成。未来,我们计划实现以下目标:

    • 可用性:让搜索、代码补全、匹配和错误处理功能达到与 ECJ 等效的水平。

    • 性能:

      • 消除与基于 ECJ 的编译/诊断相比明显的性能下降。
      • 调查 VS Code Java 和 JDT-LS 的基准测试。
    • 入门体验:移除对新 JDK (如 JDK 23 )的依赖,以启用 Javac 支持。

    • 上游集成:将当前工作贡献到 JDT 中,以便在 Eclipse 中内部测试 Javac 支持。

    此计划已在于德国美因茨举办的 OpenCommunity-X 大会上公布。虽然 Javac 支持的开发目前在 JDT-core 分支中进行,但所有工作都会回馈到上游 JDT 。随着功能逐步完善,上游集成工作已启动并将持续进行。

    Javac 对 VS Code Java 的支持是我们为更快速支持新 Java 版本、最小化编译器差异而努力的重要一步。我们希望您能尝试这一预览支持并向我们反馈您的意见!

    安装 Java 插件包

    要使用上述所有功能,请在 Visual Studio Code 上下载并安装Extension Pack for Java 。

    Image javapack

    如果您是一位 Spring 开发者,并且正在编写 Spring Boot 相关的程序,您也可以下载并安装Spring Boot 插件包,获得与 Spring Boot 有关的专属开发体验

    Spring boot extension pack

    反馈与建议 Copy link

    2024 年,Visual Studio Code 上的 Java 会有很多激动人心的更新,一如既往,您的反馈和建议对我们非常重要,将有助于我们未来的产品塑造。有几种方法可以给我们留下反馈

    资源

    以下链接和资源能帮助您更好地了解 Java on Visual Studio Code 的相关信息

    8 replies  •  2025-01-10 15:50:37 +08:00
    Bmmmmmmmmmmmmmmm
        1
    Bmmmmmmmmmmmmmmm  
       Jan 9, 2025
    老哥一直坚持不懈的运营 vsc ,真是佩服佩服
    hxtheone
        2
    hxtheone  
       Jan 9, 2025 via iPhone
    JB 系的 IDE 实在用不习惯, 所以也短暂地拿 VSC 写过一段时间 Java, 起码基础的代码编写是没问题的, 希望能在 AI 的加持下做的越来越好
    querysecret
        3
    querysecret  
       Jan 9, 2025   ❤️ 1
    @hxtheone 我最近第 N 次尝试使用 VS 写公司这种 SpringBoot+Mybatis 的项目,后台不知道在转什么任务,转 50%就会卡住,提示也没有,修改代码还卡,唉,比 JB 还是差很多
    Configuration
        4
    Configuration  
       Jan 9, 2025   ❤️ 1
    @baozhibo 如果 M$ 给你发工资,你也一定会坚持的
    hxtheone
        5
    hxtheone  
       Jan 9, 2025 via iPhone
    @querysecret 感觉还是 jdtls 太拉了, 写着写着卡死我也遇到过都是强制 reload 解决, 不过我们公司模块分得细项目非常小, 遇到的频率不高
    layxy
        6
    layxy  
       Jan 9, 2025
    争取干死 jetbrain,现在 jetbrain 一点都不争气,各家 ai 编码插件要么不支持 idea,要么支持的稀烂,自身 ide 的稳定性也不太行,现在用着 idea 写代码,用 vscode 生成代码
    Kaiv2
        7
    Kaiv2  
       Jan 10, 2025
    牛的,试试看
    Kaiv2
        8
    Kaiv2  
       Jan 10, 2025
    有没有什么办法检查是否生效了 javac, 感觉启用了没什么效果
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4914 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 09:18 · PVG 17:18 · LAX 02:18 · JFK 05:18
    ♥ Do have faith in what you're doing.