Table of Contents
Install the JDK and VSCode plug-in
Create launch.json configuration file
Set up the correct project structure
Common debugging operation skills
Home Development Tools VSCode VSCode debugger for Java setup guide

VSCode debugger for Java setup guide

Jul 01, 2025 am 12:22 AM
java debug

The key steps in configuring a Java debugging environment on VSCode include: 1. Install JDK and verify; 2. Install Java Extension Pack and Debugger for Java plug-in; 3. Create and configure the launch.json file, specify mainClass and projectName; 4. Set up the correct project structure to ensure the source code path and compilation output are correct; 5. Use debugging techniques such as Watch, F8/F10/F11 shortcut keys and methods to deal with common problems such as class not found or JVM attachment failures.

VSCode debugger for Java setup guide

Configuring a Java debugging environment is actually not difficult on VSCode, but it may be a bit trampled for beginners. The key is to match several core components: JDK, plug-in, launch.json file and project structure. As long as these parts are fine, debugging can run smoothly.

VSCode debugger for Java setup guide

Install the JDK and VSCode plug-in

First of all, you have to confirm that you have installed JDK locally. It is recommended to use OpenJDK or Adoptium (formerly called AdoptOpenJDK). You can use the terminal to enter java -version and javac -version to verify whether the installation is successful.

VSCode debugger for Java setup guide

Then open VSCode and install the following two plugins:

  • Java Extension Pack : This is the basic set of Java development, including language support, project management, etc.
  • Debugger for Java : This plugin is really used for debugging, and it will automatically generate some configuration files for you.

After these two plug-ins are installed, VSCode will have basic Java development and debugging capabilities.

VSCode debugger for Java setup guide

Create launch.json configuration file

If you are debugging a Java project for the first time, VSCode may prompt you to create a launch.json file when clicking on the "Run and Debug" sidebar. If it does not automatically pop up, you can manually click "Create launch.json file" and select "Launch Current File" or "Launch Program" in Java.

The core function of this file is to specify the startup class and JVM parameters. For example, you can write this:

 {
  "type": "java",
  "request": "launch",
  "name": "Debug (Launch) - Current File",
  "mainClass": "com.example.Main",
  "projectName": "your-project-name"
}

Note two points:

  • mainClass To write the full class name, including the package name.
  • If you are a multi-module project, it is best to fill in projectName as well to avoid not finding the class.

Set up the correct project structure

VSCode has certain requirements for the structure of Java projects. Generally speaking, the source code should be placed in the src/main/java directory, and there should be a .classpath file or Maven/Gradle configuration file. If you are using a normal folder instead of a Maven/Gradle project, you may need to manually set the compiled output path.

FAQ:

  • Class not found: Check whether build path and output folder are correct.
  • An error "Source not found" was reported at startup: It may be that the class where the breakpoint is located was not compiled or loaded correctly.

The recommended approach is:

  • Initialize the project structure using Maven or Gradle.
  • Make sure that the compiled .class file is under bin or target/classes .

Common debugging operation skills

When debugging Java, in addition to adding breakpoints, there are some tips to improve efficiency:

  • Right-click on the variable to select "Watch" to view the value changes in real time.
  • Press F8 to quickly skip the current breakpoint, F10 is the stepping function, and F11 is the execution line by line.
  • If the debugging is stuck, you can click the "Pause" button to see the current thread status.

Also, sometimes you will encounter "cannot attach to JVM", and you can try:

  • Clean up the cache files in the .vscode directory.
  • Restart VSCode and reload the Java plug-in (Ctrl Shift P enter "Reload Window").

Basically that's it. The whole process is not complicated, but it is easy to cause problems in details, especially when the path and class names are written incorrectly. As long as you take it step by step, it can usually be done.

The above is the detailed content of VSCode debugger for Java setup guide. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Integrating PHP with Machine Learning Models Integrating PHP with Machine Learning Models Jul 28, 2025 am 04:37 AM

UseaRESTAPItobridgePHPandMLmodelsbyrunningthemodelinPythonviaFlaskorFastAPIandcallingitfromPHPusingcURLorGuzzle.2.RunPythonscriptsdirectlyfromPHPusingexec()orshell_exec()forsimple,low-trafficusecases,thoughthisapproachhassecurityandperformancelimitat

Laravel raw SQL query example Laravel raw SQL query example Jul 29, 2025 am 02:59 AM

Laravel supports the use of native SQL queries, but parameter binding should be preferred to ensure safety; 1. Use DB::select() to execute SELECT queries with parameter binding to prevent SQL injection; 2. Use DB::update() to perform UPDATE operations and return the number of rows affected; 3. Use DB::insert() to insert data; 4. Use DB::delete() to delete data; 5. Use DB::statement() to execute SQL statements without result sets such as CREATE, ALTER, etc.; 6. It is recommended to use whereRaw, selectRaw and other methods in QueryBuilder to combine native expressions to improve security

Reactive Programming in Java with Project Reactor and Spring WebFlux Reactive Programming in Java with Project Reactor and Spring WebFlux Jul 29, 2025 am 12:04 AM

Responsive programming implements high concurrency, low latency non-blocking services in Java through ProjectReactor and SpringWebFlux. 1. ProjectReactor provides two core types: Mono and Flux, supports declarative processing of asynchronous data flows, and converts, filters and other operations through operator chains; 2. SpringWebFlux is built on Reactor, supports two programming models: annotation and functional. It runs on non-blocking servers such as Netty, and can efficiently handle a large number of concurrent connections; 3. Using WebFlux Reactor can improve the concurrency capability and resource utilization in I/O-intensive scenarios, and naturally supports SSE and WebSo.

Java Authentication and Authorization with JWT Java Authentication and Authorization with JWT Jul 29, 2025 am 12:07 AM

JWT is an open standard for safe transmission of information. In Java, authentication and authorization can be achieved through the JJWT library. 1. Add JJWT API, Impl and Jackson dependencies; 2. Create JwtUtil tool class to generate, parse and verify tokens; 3. Write JwtFilter intercepts requests and verify BearerTokens in Authorization header; 4. Register Filter in SpringBoot to protect the specified path; 5. Provide a login interface to return JWT after verifying the user; 6. The protected interface obtains user identity and roles through parsing the token for access control, and ultimately realizes a stateless and extensible security mechanism, suitable for distributed systems.

Unit Testing and Mocking in Java with JUnit 5 and Mockito Unit Testing and Mocking in Java with JUnit 5 and Mockito Jul 29, 2025 am 01:20 AM

Use JUnit5 and Mockito to effectively isolate dependencies for unit testing. 1. Create a mock object through @Mock, @InjectMocks inject the tested instance, @ExtendWith enables Mockito extension; 2. Use when().thenReturn() to define the simulation behavior, verify() to verify the number of method calls and parameters; 3. Can simulate exception scenarios and verify error handling; 4. Recommend constructor injection, avoid over-simulation, and maintain test atomicity; 5. Use assertAll() to merge assertions, and @Nested organizes the test scenarios to improve test maintainability and reliability.

go by example generics go by example generics Jul 29, 2025 am 04:10 AM

Go generics are supported since 1.18 and are used to write generic code for type-safe. 1. The generic function PrintSlice[Tany](s[]T) can print slices of any type, such as []int or []string. 2. Through type constraint Number limits T to numeric types such as int and float, Sum[TNumber](slice[]T)T safe summation is realized. 3. The generic structure typeBox[Tany]struct{ValueT} can encapsulate any type value and be used with the NewBox[Tany](vT)*Box[T] constructor. 4. Add Set(vT) and Get()T methods to Box[T] without

css table-layout fixed example css table-layout fixed example Jul 29, 2025 am 04:28 AM

table-layout:fixed will force the table column width to be determined by the cell width of the first row to avoid the content affecting the layout. 1. Set table-layout:fixed and specify the table width; 2. Set the specific column width ratio for the first row th/td; 3. Use white-space:nowrap, overflow:hidden and text-overflow:ellipsis to control text overflow; 4. Applicable to background management, data reports and other scenarios that require stable layout and high-performance rendering, which can effectively prevent layout jitter and improve rendering efficiency.

Indexing Strategies for MongoDB Indexing Strategies for MongoDB Jul 29, 2025 am 01:05 AM

Choosetheappropriateindextypebasedonusecase,suchassinglefield,compound,multikey,text,geospatial,orTTLindexes.2.ApplytheESRrulewhencreatingcompoundindexesbyorderingfieldsasequality,sort,thenrange.3.Designindexestosupportcoveredqueriesbyincludingallque

See all articles