Skip to content

Java Support v1.1.3

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Nov 04:42
· 2 commits to main since this release
6706d3c

中文

Java Support 1.1.3 为配套 Viva 预览版提供 Java 项目支持。本版本是预发布,插件包不带发布者签名。

下载与安装

下载本页对应系统的 ZIP:macOS Apple Silicon(darwin-arm64)、macOS Intel(darwin-x64)或 Windows x64(windows-x64)。在兼容 Viva 客户端的插件设置中选择从文件安装 ZIP。

需要包含 Lithe #1884 的客户端(修订 607f00967d70a7017d49805183d0d2e6ffdf1c0d 或更新版本)及 Core #29。旧版 macOS Lithe 和未包含这些修复的 Viva preview 不受支持。插件使用契约/API/能力版本 0;语言服务器使用随包 Temurin 21,项目运行仍使用用户选择的 JDK。

Maven 项目配合 Maven 0.0.1;Gradle 项目配合 Gradle 1.0.0。构建工具由用户安装或由项目 Wrapper 提供。

更新

  • 修复并发处理索引进度时,晚到的旧更新重新激活已完成任务、导致运行动作不恢复的问题;终态历史有界且不增加后台轮询。

  • 补齐自身 LICENSE/NOTICE 与 Rust 构建依赖的许可和哈希清单,缺失时阻止打包。

  • 跑通普通 Maven、Gradle 和普通 Java 目录的补全、编译、运行及断点调试,Java 8 项目保留正确的编译目标。

  • Windows 后端静态链接编译器运行库,发布检查拒绝额外的 VC++/MinGW 运行库依赖。

  • 修复 Windows 可执行路径、中文/UNC 文件 URI、Lombok 加载及过长 classpath;退出后清理临时 classpath JAR。

  • 冷索引暂时无法返回运行动作时,在索引任务完成后有界恢复,不增加后台轮询。

  • 已在 macOS 与 Windows 无头验证断点变量、继续/停止、编译错误阻止运行旧 class、暂停时关闭及插件安装目录只读。

兼容性与已知限制

  • 二进制依赖类跳转尚未接通:语言服务器能返回 jdt: 目标,但插件未注册对应内容提供者,Viva 无法打开类内容;不保证反编译视图或类间继续跳转。
  • .jsp 当前按 HTML 打开,没有 Java 语言服务接管,JSP 内的 Java 补全与跳转不受支持。

尚未完整验收原生窗口、全部日志/取消路径、JUnit/TestNG 行内运行器和 Spring/MyBatis。JSP HTTP/Servlet 调试通过不代表 JSP 源码补全或 JSP 断点;Ant 源码布局不代表执行 Ant target。Java 5/7 源码级别、长 module-path、JavaCC 生成模型、多版本 JAR 和部分旧泛型项目仍有限制,详见 README 与主仓库 #1881–1883。

实测 JDT 内存与补全延迟没有显著改善,本版本不宣称整体性能提升。Windows 的真实工作流在 ARM Windows 上使用 x64 工具验证,其耗时不代表原生 AMD64 性能。


English

Java Support 1.1.3 targets the matching Viva preview. This is a prerelease with unsigned plugin archives.

Download and installation

Choose the ZIP for macOS Apple Silicon (darwin-arm64), macOS Intel (darwin-x64), or Windows x64 (windows-x64), then install it from a file in the compatible Viva client's plugin settings.

The client must include Lithe #1884, revision 607f00967d70a7017d49805183d0d2e6ffdf1c0d or newer, and Core #29. Legacy macOS Lithe and earlier Viva previews are unsupported. Contract, API and capability versions are 0. Bundled Temurin 21 runs the language server; project execution uses the selected project JDK.

Use Maven 0.0.1 for Maven projects and Gradle 1.0.0 for Gradle projects. Supply the build tool yourself or through the project's wrapper.

Changes

  • Prevent late progress updates from resurrecting completed indexing jobs and blocking run-action recovery; terminal history is bounded without polling.

  • Include project and Rust dependency notices with a hash manifest; missing notices stop packaging.

  • Validated completion, compilation, execution and breakpoint debugging for ordinary Maven, Gradle and plain Java projects, preserving Java 8 compilation targets.

  • The Windows backend statically links compiler runtimes; release checks reject extra VC++/MinGW runtime DLL dependencies.

  • Fixed Windows executable paths, Unicode/UNC file URIs, Lombok loading and long classpaths; temporary classpath JARs are removed after execution.

  • Recover run actions after cold-index jobs finish, with bounded retries and no background polling.

  • Headless macOS and Windows workflows cover breakpoint locals, continue/stop, refusal to run stale classes after compilation errors, closing paused sessions and read-only installed packages.

Compatibility and known limitations

  • Navigation into binary dependency classes is not wired up: the language server returns jdt: targets, but no matching content provider is registered, so Viva cannot open them. Decompiled views and further navigation between classes are not supported.
  • .jsp files currently open as HTML without a Java language service; Java completion and navigation inside JSP are unsupported.

Native windows, all logging/cancellation paths, inline JUnit/TestNG and Spring/MyBatis have not been fully accepted. JSP HTTP/Servlet debugging does not cover JSP-source completion or JSP breakpoints; Ant source layouts do not cover Ant targets. Java 5/7 source levels, long module-paths, JavaCC models, multi-release JARs and some older generic code remain limited; see README and Lithe #1881–1883.

Measurements found no significant JDT memory or completion-latency improvement. Windows workflows used x64 tools on ARM Windows, so their timings do not represent native AMD64 performance.

SHA-256

78e761d4c31af0940122b6e2126b7a2f4675951130e5df1fdceba586b2b36eff  Lithe-Java-Support-1.1.3-darwin-arm64.zip
31768b837c28f0f7c626869d477f26cb96786e26c2618b4d7fdf80a9dac18f21  Lithe-Java-Support-1.1.3-darwin-x64.zip
4be8267290b0ebb52002c8ebb3156c71f8879adf00f92ffaa3ed1ff3a59186e3  Lithe-Java-Support-1.1.3-windows-x64.zip