Support for Java in Visual Studio Code is provided through a wide range of extensions. Combined with the power of core VS Code, these extensions give you a lightweight and performant code editor that also supports many of the most common Java development techniques.
This article will give you an overview of different capabilities of Visual Studio Code for Java developers. For a quick walkthrough of editing, running, and debugging a Java program with Visual Studio Code, use the button below.
JavaScript is a scripting language used to create interactive web pages while Java is a programming language created by Oracle. Java is mainly used to program Android devices. JavaScript is more. Java is a high-level programming language originally developed by Sun Microsystems and released in 1995. Java runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX. This tutorial gives a complete understanding of Java.
Overview
VS Code provides essential language features such as code completion, refactoring, linting, formatting, and code snippets along with convenient debugging and unit test support. VS Code also integrates with tooling and frameworks such as Maven, Tomcat, Jetty, and Spring Boot. Leveraging the power of Visual Studio Code, Java developers get an excellent tool for both quick code editing and also the full debugging and testing cycle. It's a great choice for your Java work if you're looking for a tool which:
- Is fast, lightweight, free, and open source.
- Supports many other languages, not just Java.
- Helps start your Java journey without installing and learning a complex IDE.
- Provides great microservices support including popular frameworks, container tooling, and cloud integration.
- Offers team-based collaboration features such as Visual Studio Live Share.
- Improves your productivity through IntelliSense and other code-aware editing features.
Install Visual Studio Code for Java
VS Code is a fast editor and ships with great editing features. Before you begin, you must have the Java SE Development Kit (JDK) on your local environment. To run VS Code for Java, Java SE 11 or above version is required; for projects, VS Code for Java supports projects with version 1.5 or above. For more details, refer to Configure JDK.
To help you set up quickly, you can install the Coding Pack for Java, which includes VS Code, the Java Development Kit (JDK), and essential Java extensions. The Coding Pack can be used as a clean installation, or to update or repair an existing development environment.
Basic Programming Language For Mac
Install the Coding Pack for Java - macOS
Note: The Coding Pack for Java is only available for Windows and macOS. For other operating systems, you will need to manually install a JDK, VS Code, and Java extensions.
Alternatively, you can also add Java language support to VS Code by installing the popular Java extensions by yourself.
![Java Java](/uploads/1/1/8/2/118237134/894395463.jpg)
Download VS Code - If you haven't downloaded VS Code yet, quickly install for your platform (Windows, macOS, Linux).
To help set up Java on VS Code, there is a Java Extension Pack, which contains the most popular extensions for most Java developers:
There are also other popular Java extensions you can pick for your own needs, including:
Thanks to the great Java community around VS Code, the list doesn't end there. You can search for more Java extensions easily within VS Code:
- Go to the Extensions view (⇧⌘X (Windows, Linux Ctrl+Shift+X)).
- Filter the extensions list by typing 'java'.
This document describes some of the key features included in those Java extensions.
Getting started
NOTE: If you are using VS Code on Windows and want to take advantage of the Windows Subsystem for Linux, see Developing in WSL.
For developers new to Java or new to VS Code, we provide a Getting Started experience. Once you've installed the Java Extension Pack, you can open the Getting Started experience from within VS Code with the Java: Getting Started command from the Command Palette. Open the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) and type 'Java: Getting Started'.
Working with Java source files
You can use VS Code to read, write, run, and debug Java source file(s) without creating a project. VS Code for Java supports two modes, lightweight and standard. Lightweight mode is ideal for scenarios that only deal with source file(s). If you want to work with a full scale project, standard mode will be required. You can easily switch from lightweight mode to standard mode, when needed. To learn more, see Lightweight Mode.
Working with Java project
There are three things you must understand to work with Java in VS Code:
- How does VS Code handle Workspaces?
- How does VS Code handle Java?
- How does VS Code handle Workspaces that contain Java?
VS Code Workspaces
In Visual Studio Code, a 'Workspace' means a collection of one or more filesystem folders (and their children) and all of the VS Code configurations that take effect when that 'Workspace' is open in VS Code. There are two kinds of 'Workspaces' in VS Code, 'folder workspaces' and 'multi-root workspaces'.
A 'folder workspace' is presented by VS Code when you open a filesystem folder (directory) in VS Code.
A 'multi-root workspace' can refer to multiple folders (directories) from disparate parts of the file system and VS Code displays the contents of the folder(s) of the workspace together in the File Explorer. To learn more, see Multi-root Workspaces.
Java project in VS Code
In contrast to IDEs such as IntelliJ IDEA, NetBeans, or Eclipse, the concept of a 'Java project' is provided entirely by extensions, and is not a core concept in the base VS Code. When working with 'Java projects' in VS Code, you must have the necessary extensions installed to work with those project files.
For example, Maven, Eclipse, and Gradle Java projects are supported through Language Support for Java(TM) by Red Hat, by utilizing M2Eclipse, which provides Maven support, and Buildship, which provides Gradle support through the Eclipse JDT Language Server.
With Maven for Java, you can generate projects from Maven Archetypes, browse through all the Maven projects within your workspace, and execute Maven goals easily from an embedded explorer. Projects can also be created and managed with the Project Manager for Java extension.
Visual Studio Code also supports working with standalone Java files outside of a Java project, described in the Java Tutorial with VS Code.
VS Code Workspaces that contain Java project
Assuming the necessary Java extensions are installed, opening a VS Code workspace that contains Java artifacts will cause those extensions to understand those artifacts and present options for working with them.
More details about Java project support can be found in Java Project Management in Visual Studio Code and Build Tools.
Editing
Code Navigation
Java in Visual Studio Code also supports source code navigation features such as search for symbol, Peek Definition, and Go to Definition. The Spring Boot Tools extension provides enhanced navigation and code completion support for Spring Boot projects.
One of the key advantages of VS Code is speed. When you open your Java source file or folder, within a few seconds, with the help of Lightweight Mode, you will be able to navigate your code base with Outline view as well as commands such as Go to Definition and Go to Reference. This is especially useful when you open a project for the first time.
Code Completion
IntelliSense is a general term for language features, including intelligent code completion (in-context method and variable suggestions) across all your files and for built-in and third-party modules. VS Code supports code completion and IntelliSense for Java through Language Support for Java(TM) by Red Hat. It also provides AI-assisted IntelliSense called IntelliCode by putting what you're most likely to use at the top of your completion list.
See also in Java Code Navigation and Editing. VS Code also supports a range of Refactoring and Linting features.
Debugging
Programming Language Basic
Debugger for Java is a lightweight Java Debugger based on Java Debug Server. It works with Language Support for Java by Red Hat to allow users to debug Java code within Visual Studio Code.
Starting a debugging session is easy, click on the Run|Debug button available at the CodeLens of your
main()
function, or press F5. The debugger will automatically generate the proper configuration for you.Although it's lightweight, the Java debugger supports advanced features such as expression evaluation, conditional breakpoints, and hot code replacement. For more debugging related information, visit Java Debugging.
Testing
With the support from the Java Test Runner extension, you can easily run, debug, and manage your JUnit and TestNG test cases.
For more about testing, read Testing Java.
Spring Boot, Tomcat, and Jetty
To further improve your Java productivity in VS Code, there are extensions for most popular frameworks and tools such as Spring Boot, Tomcat, and Jetty created by the community.
The Tomcat extension includes an explorer to easily navigate and manage your Tomcat servers. You can create, start, debug, stop, and rename your Tomcat server with the extension.
See Application Servers to learn more about support for Tomcat and Jetty as well as other application servers with VS Code.
Spring Boot support is provided by Pivotal. There are also Spring Initializr Java Support and Spring Boot Dashboard extensions available from Microsoft to further improve your experience with Spring Boot in Visual Studio Code.
See Spring Boot with VS Code to learn more about Spring Boot support with VS Code.
Next steps
You may Sign up to follow the latest of Java on Visual Studio Code.
Learn more about Java in VS Code
Read on to find out more about Visual Studio Code:
- Basic Editing - Learn about the powerful VS Code editor.
- Code Navigation - Move quickly through your source code.
- Tasks - use tasks to build your project and more
- Debugging - find out how to use the debugger with your project
This DrJava-based Java programming environment is no longer being supported(because DrJava in no longer being actively developed and DrJava is incompatible with Java 11).It has been replaced by the following IntelliJ-based programming environment forMac OS X.
This document instructs you on how to set up our Java programming environment for your Mac OS X computer. It also provides a step-by-step guide for creating, compiling, and executing a Java program using either DrJava or the Terminal.All of the software used is freely available.
You will need an Intel-based Mac runningMac OS X 10.8 (Mountain Lion) to Mac OS X 10.13 (High Sierra).
You can defer steps 4–6 until Section 1.5 of the textbook.
Our installer downloads, installs, and configures the Java programming environment you will be using, including DrJava, and the standard libraries from our textbook.
- Log in to the user account in which you will be programming.Your account must have Administrator privileges (with a non-blank password)and you must be connected to the Internet.
- Install Oracle's implementation of the Java Platform, Standard Edition Development Kit (JDK 8).Do not install either JDK 9 or JDK 10, as they are currently incompatible with DrJava.
- Browse toJava SE Development Kit 8u171.In the first table, check Accept License Agreementand the click jdk-8u171-macosx-x64.dmg,which corresponds to the entry for Mac OS X.The exact verison 8u171 is not essential.
- Double click the downloaded file jdk-8u171-macosx-x64.dmg to begin the installation.Enter your OS X password when prompted.We recommend all of the default options.
- Delete jdk-8u171-macosx-x64.dmg.
- To install,
- Download introcs.zip to the Desktop;double-click it to unzip (if necessary). This creates introcs.app. Security and Privacy -> General -> Allow applications downloaded from: Anywhere.To enable this option, you may need to click the lock in the lower left-hand corner(and type your password when prompted).-->
- Double-click introcs.app to perform the installation.If you receive a warning that introcs.app is an applicationdownloaded from the Internet, click Open.
- Enter your OS X password when prompted.
- Download introcs.zip to the Desktop;double-click it to unzip (if necessary). This creates introcs.app. Security and Privacy -> General -> Allow applications downloaded from: Anywhere.
- If the installation succeeds, you will see the following:
- A Terminal window containing approximately thisexecution log.
- A Standard Drawing window containing a red bullseye and a textbook graphic.
- Delete introcs.zip and introcs.app.
Now you are ready to write your first Java program.You will develop your Java programs in an application called DrJava.DrJava features many specialized programming tools including syntax highlighting,bracket matching, auto indenting, and line numbering.
- The installer creates a shortcut to DrJava on the desktop.Double-click it to launch DrJava.If you receive a warning about incoming network connections,click Allow.
- In the main DrJava window, type the Java programHelloWorld.java exactly as it appears below. If you omit even a semicolon, the program won't work. As you type, DrJava does the indenting for you.
- Finally, click the Save button to save the file, using the name HelloWorld.java.The filename is case sensitive and must exactly match the name of theclass in the Java program.
It is now time to convert your Java program into a form more amenable for execution on a computer. To do this, click the Compile button.If all goes well, you should see the following message in the Compiler Outputpane at the bottom:
If DrJava complains in some way, you mistyped something.Check your program carefully, using the error messages in the Compiler Output paneas a guide.
Now it is time to run your program. This is the fun part.
- Type the following in the Interactions pane at the bottom.By convention, we highlight the text you type in boldface. If all goes well, you should see the following message:
- You may need to repeat this edit–compile–execute cycle a few times before it works. Ask for help if you can't see the mistake.
The command-line provides capabilities beyond those available in DrJava,including redirection and piping.You will type commands in an application called the Terminal.
- The installer creates a shortcut on the desktop to the Terminal.Double-click it to launch the Terminal.You should see something like:The ~ is shorthand for your home directory /Users/<username>.
- To confirm that the Java compiler is installed,type the command in boldface below and check that the results match:It's important that you see the number 1.8for the Java version number, but the rest is not critical.
- To confirm that you the Java interpreter is installed, typethe command in boldface below and check that the results match:Again, it's important that you see the number 1.8for the Java version number, but the rest is not critical.
You will use the javac command to convert your Java program into a form more amenable for execution on a computer.
- From the Terminal, navigate to the directory containing HelloWorld.java,say ~/Desktop/hello,by typing the cd (change directory) commands below:The ~ is shorthand for /Users/<username>.
- Compile it by typing the javac command below:Assuming the file HelloWorld.java is in the current working directory,you should see no error messages.
- To make our textbook standard libraries accessible to Java,use the command javac-introcs instead.For example,BouncingBall.javais a program that uses our standard drawing library.After downloading the file to the current directory,you can compile it with the following command:
You will use the java command to execute your program.
Java Programming Language For Machine Learning
- From the Terminal, type the java command below.You should see the output of the program.
- To make our textbook standard libraries accessible to Java,use the command java-introcs instead. For example, to executeBouncingBall.java(assuming you downloaded and compiled it in the previous step), type the following command:
How long should the installer take?Once downloaded, the Oracle Java installer should take about 10 seconds and the introcs.app installer should take about 20 seconds. If you have virus detection software running (such as McAfee Endpoint), each could take 5–10 minutes (or more).
The installer didn't work on my machine. What should I do?Check out the following three Q+As. If these don't resolve the issue,please contact a staff member to identify what went wrong.
When I run the installer, the terminal window just waits after asking for a password.But, I don't even have a password-enabled account.You must have a non-blank password. Here are instructions forresetting a user's password.
When I run the installer, I get the error message'bash: /Volumes/Macintosh: No such file or directory'.Your user account and OS must be on the same volume.
When I run the installer, I get an error like bash: /private/var/folders/70/n8stth1d1x33hrw8n07kf1280000gn/T/AppTranslocation/45FC25B7-17E3-46DF-AC27-9A7EF56DDFD3/d/algs4.app/Contents/Resources/launcher.sh: No such file or directory.What should I do? This is likely due to OS X Sierra path randomization.Use the Finder to move introcs.app to some other folder and try again.
What does the installer do?In short, it downloads, installs, and configures Checkstyle, Findbugs, and DrJava, and the textbook standard libraries.Here is a more detailed list:
- Checks that Java is installed.
- Downloads the textbook standard libraries fromstdlib.jar.
- Downloads the Java wrapper scriptsjavac-introcs andjava-introcs.
- Downloads and installsFindbugs 3.0.1from findbugs.zip.Downloads our findbugs configuration file findbugs.xml and wrapper script findbugs-introcs.
- Downloads and installsPMD 5.8.1from pmd.zip.Downloads our PMD configuration file pmd.xmland wrapper script pmd-introcs.
- Downloads and installsCheckstyle 8.2from checkstyle.zip.Downloads our checkstyle configuration file checkstyle-introcs.xml and wrapper script checkstyle-introcs.
- Downloads and installs the latest stable version ofDrJava,from DrJava.zip.Creates a shortcut to DrJava on the Desktop.Downloads and installs the DrJava configuration file fromdrjava-config.txtto /Users/<username>/.drjava.Note that this will overwrite any existing .drjava configuration file.
- Tests that the installation succeeded by compiling and executing TestIntroCS.java.
Why does the installer need my password?The installer copies files into /usr/local/bin and/usr/local/introcs,which require superuser privileges.
How do I completely uninstall introcs.app?
- Delete the directory /usr/local/introcs.
- To uninstall DrJava, delete the following two files:
- /Applications/DrJava.app.
- /Users/<username>/.drjava.
- To uninstall the Java, Checkstyle, and Findbugs wrapper scripts,delete the following files:
- /usr/local/bin/javac-introcs
- /usr/local/bin/java-introcs
- /usr/local/bin/findbugs-introcs
- /usr/local/bin/pmd-introcs
- /usr/local/bin/checkstyle-introcs
- Delete the shortcut to DrJava and Terminal on the Desktop.
What happens if I re-run the installer?It will re-download, install, and configure Checkstyle, Findbugs, DrJava, and our textbook libraries.
Can I use a different version of Java?Any version of Java 8 (either Oracle or OpenJDK) should work fine.Note that DrJava does not currently work with Java 9.
I have both Java 8 and Java 9 installed, but the default version is Java 9. How doI change the default version back to Java 8?To disable Java 9, type the following commands in the Terminal:
You should still be able to use Java 9 by specifying the full path tojavac
and java
, e.g.,/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home/bin/javac
.Why I try to run DrJava, I get the following error message. How should I proceed?
Are you sure that you are using the version of DrJava that was installedby our auto-installer (and not downloaded from the DrJava website)?We suggest deleting any older versions of DrJava and using the one that the auto-installer copied to the /Applications directory.Can I use a different IDE? Yes you can use another IDE (such as Eclipse) butyou will have to configure the IDE properties yourself (such as the classpath). Reset Interactions.From the Terminal, type Ctrl-c.
When using standard input, how do I signify that there is no more data?If you are typing input in the Terminal or DrJava, type Ctrl-d on its own line.
I successfully compiled HelloWorld.java with javac, but, when I execute,I get the error message'Exception in thread 'main' java.lang.NoClassDefFoundError: HelloWorld'.What am I doing wrong?First, verify that the file HelloWorld.class is in the current directory.Be sure to type java HelloWorld without a trailing .classor .java.-->
When I compile or execute a program in Terminal that uses thetextbook standard library, I get an error that it cannot find the library. How can I fix this?Use the wrapper scripts javac-introcs and java-introcs,which add stdlib.jar to the Java classpath.
Which shell should I use in the Terminal?Bash is the default shell in Mac OS X, but feel free to usewhichever one you prefer.
Where can I learn more about the command line?Here is a short tutorial on thecommand line.
Last modified on August 14, 2019.
Copyright © 2000–2019Robert SedgewickandKevin Wayne.All rights reserved.
Copyright © 2000–2019Robert SedgewickandKevin Wayne.All rights reserved.