Introducing the Oracle Java Platform Extension for Visual Studio Code

We are happy to announce the general availability of Oracle’s Java Platform extension for Visual Studio Code.

The increasing popularity of Visual Studio Code as a universal IDE has changed the relationship between programming languages and their IDEs. In the past, developers (at least those who weren’t staunch vi or Emacs fans) first picked a language and then picked an IDE for that language. Today, many developers expect that language-agnostic IDEs like VS Code provide good support for every language they might work with. We’re proud that Java has excellent specialized IDEs, which many large companies and dedicated Java professions rely on, but there’s a large number of Java developers who use VS Code, especially among students learning Java and people who use other languages alongside Java. We want Java programmers to have a good experience in their preferred IDE.

At the core of a VS Code extension supporting a programming language is a language server — a backend that operates the language’s tools and communicates with the IDE using the Language Server Protocol. Our Java language server is a slimmed down version of the one we developed in the Apache Netbeans project, and it is based on the OpenJDK JDK’s javac compiler for code editing and compilation and on OpenJDK’s debugger interface for debugging. This allows us to offer VS Code IDE support for new JDK features as soon as they are introduced, even during Early Access of the JDK. To this effect, our VS Code Extension will support the current JDK releases as well as the next upcoming JDK version.

The language server will continue being developed as part of the Apache NetBeans project, and Oracle will continue contributing to that project as we have done since contributing NetBeans to the Apache Software Foundation, but the VS Code extension (the client side) will be developed in a separate open source project.

The initial release offers many features, including a project view, auto-complete, error highlighting, jump to definition, some forms of automated refactoring, JavaDoc-on-hover, debugging support, unit-testing support for JUnit, and support for Gradle and Maven projects. For more information refer to the project page for the extension.

The extension is now available on the Visual Studio Code marketplace.