VSCode + Gradle Java 运行与调试

C.D*_*.D. 6 java gradle visual-studio-code

我正在尝试使用带有模块的 Java(从 Java 版本 11)使用 Gradle 构建文件使 VSCode 工作。gradle.build 编译工作得很好,但我不能让 VSCode 执行输出编译的 Java 类文件。(它总是尝试创建自己的。)

VSCode 版本:1.48.2

系统信息:Ubuntu 2020.04

Java构建:

openjdk 11.0.8 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

build.gradle 文件:

apply plugin: 'java'
def version = 0.1

sourceSets {
    main {
        java {
            srcDir 'src/easytext/javamodularity/easytext'
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

module-info.java 位于 $projectDir/src/easytext/module-info.java

// module easytext {
module easytext.javamodularity.easytext {
    requires java.base;
}

Run Code Online (Sandbox Code Playgroud)

非常简单的 Main.java,位于 $projectDir/src/easytext/javamodularity/easytext/Main.java:

//package easytext;
package easytext.javamodularity.easytext;

import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        if (args.length == 0) {
            System.out.println("Welcome to EasyText. Please provide a filename as input argument.");
            return;
        }

}

Run Code Online (Sandbox Code Playgroud)

gradle 文件总是想输出到$projectDir/build/,但 VScode 总是想运行 $projectDir/bin/easytext/javamodularity/easytext/Main.class 中的文件。

我也收到了我不明白的 VSCode 错误:“module-info.java 不在 EasyText 项目的类路径上,只报告了语法错误。”

运行 Gradle 任务“build”确实编译成功。

我没有launch.json文件,因为我不知道如何将它指向modulePath?还是我缺少某种魔法?

R S*_*ltz 9

如果您已正确配置为调试 gradle 任务,您将在 gradle 任务列表中的运行图标旁边看到一个调试图标。要访问 gradle 任务列表,请单击扩展栏中的 Gradle 徽标(由黄色箭头指示)。红色箭头显示调试任务。

在此输入图像描述

VSCode 不一定配置为显示此选项。有 3 个地方可以配置。

  1. 用户settings.json文件。
  2. 工作区settings.json文件。
  3. 远程计算机的settings.json文件。(仅适用于在远程服务器上开发时)

这些文件可以通过以下方式编辑

  1. Ctrl+,打开设置窗口。
  2. gradle.javaDebug在搜索栏中输入。
  3. 根据需要选择用户、远程 [SSH:yourhosthere] 或工作空间。
  4. 点击Edit in settings.json
  5. 将以下代码添加到顶级大括号内。

注意 1:输入时,您将获得自动完成其余配置的选项。此外,如果文件中还有其他条目settings.json,请确保包含适当的逗号。

{
  "gradle.javaDebug": {
    "tasks": [
      "run",
      "runBoot",
      "test",
      "intTest",
      "integration"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

注2:如果您有子项目,则应将"gradle.javaDebug"条目添加到工作区中settings.json。该条目如下所示。

{
  "gradle.javaDebug": {
    "tasks": [
      "run",
      "runBoot",
      "test",
      "intTest",
      "integration",
      "subprojectname:run",
      "subprojectname:test"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

这是使用 Visual Studio Code 版本:1.61.2 进行测试的。如果对 的更改无法解决settings.json您的问题,则有一个未解决的问题(截至本文发布时)可能与您的问题相关。https://github.com/microsoft/vscode-gradle/issues/876


And*_*Nic 3

这是一个老问题,但我遇到了同样的问题,如果有人需要的话,这是我的解决方案。

1)安装gradle vscode扩展

2)打开gradle任务,这里有运行/调试选项 在此输入图像描述

或者,您可以使用以下命令从终端运行任务

Linux

./gradlew 构建

./gradlew 运行

视窗

gradlew.bat 构建

gradlew.bat 运行