Java 调试JAR intellij或命令行
我在根项目下使用以下配置调试jar文件,当我单击调试时,程序开始运行,但不会停止,因为我没有设置任何断点(因为这是jar文件:),在node.js中,有一个选项可以使用Java 调试JAR intellij或命令行,java,shell,debugging,intellij-idea,jar,Java,Shell,Debugging,Intellij Idea,Jar,我在根项目下使用以下配置调试jar文件,当我单击调试时,程序开始运行,但不会停止,因为我没有设置任何断点(因为这是jar文件:),在node.js中,有一个选项可以使用--inspect brk执行此操作,它在第一条语句中停止,但不确定如何在jar文件中执行此操作 我的问题是 如何在程序jar的第一行中停止 我的配置正常吗 Oterwise,如果不能设置断点,如何调试jar 编辑: 我试过使用crazycoder的建议,但它不起作用,你知道吗 我尝试的是在我的根项目decomplie文件夹下创
--inspect brk
执行此操作,它在第一条语句中停止,但不确定如何在jar文件中执行此操作
我的问题是
java -jar fernflower.jar zte.jar + decomplie/
我找到了,当然找不到了
我也试过了
java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler zte.jar + decomplie/
无法找到或加载主类
org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler
如何获取这个罐子(fernflower.jar)或它的路径
编辑2
我的项目是这样的
-myjavaproj
--zte.jar
--decomile
---zte.jar
---com.proj.cli
----appmain.java
您的配置有点奇怪,但正确。您提供的VM选项告诉JVM等待运行zte.jar,直到附加了调试器 因此,您不会在第一行自动停止,您需要在IDEA中添加断点,并手动将其附加到JVM进程。这里对此进行了解释
记住你做了一件错事。您不需要在VM选项中设置调试选项。只需选择要调试的JAR,放置断点并以调试模式启动(这是IDEA中类似bug的图标)。对于您的特定项目,它是一个JAR文件(
zte.JAR
)它包含deps.zip
,内部又包含其他.jar
依赖项,并且根本没有源代码,还使用反射和自定义类加载器来加载和使用deps.zip
中的.jar
文件;为了使调试器工作,您必须将deps.zip
中的所有jar解包到某个位置,然后创建一个新的IntelliJ IDEA项目,并将所有jar(包括根zte.jar
解包自deps.zip
)添加到调试器中
浏览到
self.jar
中的CliExecutor
,在项目视图中,IntelliJ IDEA将对其进行反编译、放置断点、调试。注释不用于扩展讨论;这个对话是。目前我能够调试.class
文件,但是由于它是反编译文件,所以很难跟踪流,Intellij中有没有办法调试反编译的.java
文件?(在我运行命令“java-cp…”后,我在反编译文件夹中找到了所有的.java文件…谢谢!