Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调试JAR intellij或命令行_Java_Shell_Debugging_Intellij Idea_Jar - Fatal编程技术网

Java 调试JAR intellij或命令行

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文件夹下创

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

我的问题是

  • 如何在程序jar的第一行中停止
  • 我的配置正常吗
  • Oterwise,如果不能设置断点,如何调试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/ 
    
    无法找到或加载主类 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文件…谢谢!