java - 调试 JAR intellij 或命令行

标签 java shell debugging intellij-idea jar

我使用以下配置在我的根项目下调试 jar 文件,当我单击“调试”时,程序开始运行但不会停止,因为我没有设置任何断点(因为这是 jar 文件:)) ,在 node.js 中可以选择使用 --inspect-brk info 来执行此操作。它在第一条语句处停止,但不确定如何在 jar 文件上执行此操作

我的问题是

  1. How can I stops in the first line of the program jar ?
  2. Does my config are OK?

enter image description here

否则,如果不能设置断点,如何调试jar...

编辑:

我已经尝试过crazycoder的建议,但它不起作用,有什么想法吗?

我尝试的是在根项目下创建 decomplie 文件夹并运行以下命令

 java -jar fernflower.jar zte.jar + decomplie/

我当然没有找到错误

我也尝试过

java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler zte.jar + decomplie/ 

Could not find or load main class org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler

如何获取这个 jar (fernflower.jar ) 或其路径?

编辑2

我的项目是这样的

-myjavaproj

 --zte.jar
 --decomile
 ---zte.jar
 ---com.proj.cli
 ----appmain.java 

最佳答案

对于您的特定项目,这是一个 jar 文件 ( zte.jar ),其中包含 deps.zip其中又包含其他 .jar依赖项,根本没有源,还使用反射和自定义类加载器来加载和使用 .jar文件位于 deps.zip ;为了使调试器正常工作,您必须解压 deps.zip 中的所有 jar 文件。到某个位置,然后创建一个新的 IntelliJ IDEA 项目并将所有 jars (包括从 zte.jar 解压的根 deps.zip and all the jars )添加到 module dependencies 中.

浏览至CliExecutor里面self.jar ,在项目 View 中,IntelliJ IDEA 会反编译它,放置断点,调试它。

关于java - 调试 JAR intellij 或命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45959594/

相关文章:

linux - 在 ssh 进入 DC 的时钟服务器后,如何在我的脚本中触发脚本?

linux - 仅删除文件名中至少有一位数字的文件而不是目录

c - 在 C 中编写我自己的管道函数

debugging - 如何在 Visual Studio 中停止 Javascript 运行时错误通知

windows - 我的 Windows 客户如何向我发送崩溃日志?

java - CPLEX (12.5) Java API,将 LP 解析为 IP

java - 从字符串中提取电话号码

Java android ContextCompat 没有方法 checkSelfPermission

java程序同时运行if和then else语句

c - 在集群上调试 MPI 程序时出现问题