配置vscode调试java代码

栏目: Java · 发布时间: 6年前

内容简介:配置vscode调试java代码

习惯了vscode,现阶段因工作需要需切换到 java 做项目,因此就想看看能不能配置一下vscode来写java,配置完后,发现效果还不错,也有一些小发现,这里将过程记录一下,以备后续用。

安装vscode插件

安装两个插件,第一个是redhat官方出的java的支持,第二个是微软出的java调试工具。

配置单文件debug

比如我们很简单的目录结构:

├── bin
└── src

src目录存放java源代码,bin目录存放编译后的class文件。

官方提供的Language support for java是通过Eclipse ™ JDT Language Server,Buildship来启动一个服务监听并编译源代码,这里我们需要手动创建两个文件来配置该编译服务的相关项。

创建.project和.classpath文件

  • .project

    <?xml version="1.0" encoding="UTF-8"?>
    <projectDescription>
    	<name>testjava</name>
    	<comment>Project testjava created by Buildship.</comment>
    	<projects>
    	</projects>
    	<buildSpec>
    		<buildCommand>
    			<name>org.eclipse.jdt.core.javabuilder</name>
    			<arguments>
    			</arguments>
    		</buildCommand>
    		<buildCommand>
    			<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
    			<arguments>
    			</arguments>
    		</buildCommand>
    	</buildSpec>
    	<natures>
    		<nature>org.eclipse.jdt.core.javanature</nature>
    		<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
    	</natures>
    </projectDescription>
    
  • .classpath

    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    	<classpathentry kind="src" path="src"/>
    	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
    	<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
    	<classpathentry kind="output" path="bin"/>
    </classpath>
    

第一个.project文件,vscode会识别该项目为eclipse项目,第二个文件.classpath配置了源码目录以及编译输出目录等。

配置launch.json

  • 如果项目里没有.vscode,先创建一个.vscode的目录。
  • 在.vscode目录里创建launch.json文件:

    {
      "version": "0.2.0",
      "configurations": [
        {
          "type": "java",
          "name": "Debug (Launch)",
          "request": "launch",
          "cwd": "${workspaceFolder}/bin",
          "sourcePaths": [
            "$(workspaceRoot)/src"
          ],
          "classPaths": [
            "",
            "$(workspaceRoot)/bin"
          ],
          "mainClass": "com.coolcao.test.${fileBasenameNoExtension}",
          "args": ""
        }
      ]
    }
    

    简单说明一下,cwd参数配置javac命令运行的根目录,这里应指定编译后的.class文件所在的根目录。

    sourcePaths配置源码目录,classPaths配置编译后的.class目录。

    mainClass配置要运行的主类文件。这里有一点不好的是,需要手动补全类的包名。如果文件都不在一个同一个包下,那么每次debug时需要指定当前运行类所在的包。

    以上几个参数是最重要的,用了vscode内置的几个变量。

    args是运行class文件需要添加的参数,根据需要配置即可。

最后文件目录结构差不多如下:

├── .classpath
├── .project
├── .vscode
│   └── launch.json
├── bin
│   └── com
│       └── coolcao
│           └── test
│               └── App.class
└── src
    └── com
        └── coolcao
            └── test
                └── App.java

这样,每次修改java代码时,vscode会自动编译代码到指定的class目录,需要debug,点击debug按钮,运行Debug (Launch)即可。

配置gradle管理的spring boot项目

使用gradle创建的spring boot项目,配置起来和上面差不多,思路都是一样的。

  1. 先配置.project和.classpath文件,注意源码目录和编译后字节码文件.class目录。
  2. 配置launch.json,注意cwd参数指定javac运行目录,以及sourcePaths和classPaths对应着上面第一步的配置。
  3. 指定运行的主类即可。

题外话:使用idea创建gradle项目,在java9下提示gradle版本不兼容java9的解救方法

使用idea创建gradle项目时,如果提示gradle不兼容java9:

Could not determine java version from '9.0.1'.

有两种解救办法:

  • 创建项目时,自己指定gradle为本地已下载的高版本gradle
    该方法前提是本地已下载了支持java9的gradle版本,比如 4.4.1,下载完后一般放到 ~/.gradle/wrapper/dists 目录下,然后创建的时候选择该版本即可
    配置vscode调试java代码
  • 使用 gradlew 配置
    创建完成后,如果提示gradle版本不对或者要修改gradle版本,可以使用gradle wrapper:
    > gradle wrapper
    然后在项目里的gradle目录里修改文件gradle-wrapper.properties,修改distributionUrl为:
    https\://services.gradle.org/distributions/gradle-4.4.1-bin.zip
    

以上所述就是小编给大家介绍的《配置vscode调试java代码》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

标签: vscode 调试代码

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网黑洞

互联网黑洞

仲昭川 / 电子工业出版社 / 2014-4 / 50.00

万物之灵,存乎一心;互联网时代,上兵伐谋。 纵横古今商业奥秘,无非兴趣与利益、诱惑与满足、成本与利润、价格与价值。 本书着眼于大互联网时代,旨在通过对时下互联网圈子的冷静分析、传奇披露、实战揭秘,进而传授互联网哲学,阐述互联网现状,揭示互联网价值,尝试为互联网的未来探寻狭窄的通道。一起来看看 《互联网黑洞》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具