【问题标题】:How to debug code by stepping into jar file code for which I have the source code in Visual Studio Code?如何通过进入我在 Visual Studio Code 中拥有源代码的 jar 文件代码来调试代码?
【发布时间】:2020-05-27 10:34:22
【问题描述】:

我是一名 C#、C++ 开发人员。如果我有外部 dll 的代码和 pdb,我可以通过将 IDE 指向代码和/或 PDB 来进入外部 dll 的代码。我想用 Java JAR 做类似的事情

我使用 Visual Studio 代码在 java 中创建了一个微服务框架。这会编译成一个 jar 文件。 我有另一个正在使用这个 jar 文件的应用程序。在调试应用程序时,如何单步执行微服务 jar 的代码?

我正在使用 VS Code 1.45.1、zulu 14、maven 3.6.3

假设我有一个名为 MyMaths.jar 的 jar 文件,里面有一个类 mybasicmaths

    public class MyBasicMaths{
       public int addNums(int a, int b) {
           return a+b;
       }
    }

这个 jar 正被另一个使用 MyMaths.jar 的应用程序使用。我已经使用 Maven 解决了依赖关系。在客户端应用程序中,我有类似的代码

    public class MyMathsConsumer {
       public static void main(String[] args) {
         int a = 10;
         int b = 20
         MyBasicMaths myObj = new myBasicMaths();
         int c = myObj.addNums(10, 20);
         System.out.println(c);
       }
    }

我能够正常运行我的项目。但我希望能够从 MyMathsConsumer 进入 MyBasicMaths.addNums() 的代码。

当我调试时,我可以进入 amqp-client-5.7.3.jar 甚至 zulu 类,但不能进入我创建的 jar 文件。

类似的问题已被问到 eclipse Attach the Source in Eclipse of a jar

我对 Visual Studio Code 也有同样的要求。

【问题讨论】:

  • 您需要添加更多详细信息,例如您的代码、您尝试过但无法获得解决方案的不同方法。这将有助于其他人更好地回答您的问题。看看@stackoverflow.com/help/how-to-ask
  • @Lazycoder_007 希望问题更清楚?
  • 你有没有想过这个问题?
  • @EmmanuelF 我改用 IntelliJ。 IntelliJ 能够进入我的罐子。但是如果你能附上你的来源,你也许可以介入,请查看链接maven.apache.org/plugin-developers/cookbook/…

标签: java jar vscode-debugger


【解决方案1】:

(来自https://code.visualstudio.com/docs/java/java-project

默认情况下,引用的{binary}.jar 将尝试搜索 {binary}-sources.jar在同一目录下,并附加为 如果找到一个匹配项,则为来源。

如果你想手动指定一个 JAR 文件作为源附件,你 可以在sources字段中提供key-value map:

"java.project.referencedLibraries": {
    "include": [
        "library/**/*.jar",
        "/home/username/lib/foo.jar"
    ],
    "exclude": [
        "library/sources/**"
    ],
    "sources": {
        "library/bar.jar": "library/sources/bar-src.jar"
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 2022-10-16
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 2021-10-18
    • 2020-07-30
    • 1970-01-01
    相关资源
    最近更新 更多