我使用以下配置在我的根项目下调试 jar 文件,当我单击“调试”时,程序开始运行但不会停止,因为我没有设置任何断点(因为这是 jar 文件:)) ,在 node.js 中可以选择使用 --inspect-brk
info 来执行此操作。它在第一条语句处停止,但不确定如何在 jar 文件上执行此操作
我的问题是
- How can I stops in the first line of the program jar ?
- Does my config are OK?
否则,如果不能设置断点,如何调试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/