Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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 如何在IntelliJ中调试到动态加载的JAR中_Java_Debugging_Jar_Intellij Idea_Imagej - Fatal编程技术网

Java 如何在IntelliJ中调试到动态加载的JAR中

Java 如何在IntelliJ中调试到动态加载的JAR中,java,debugging,jar,intellij-idea,imagej,Java,Debugging,Jar,Intellij Idea,Imagej,我正在为ImageJ编写一个插件,使用Ant脚本将所有需要的文件放入一个jar中。ImageJ加载一个目录中的所有JAR,然后我运行我的插件。然而,当我试图调试我的程序时,IntelliJ声称“在类y的x行没有找到可执行代码”。我该如何解决这个问题呢?我不确定,但您需要源代码来查看调试的内容。每次添加JAR时,您都有机会告诉IntelliJ在哪里可以找到它附带的源文件。看看您是否可以为您的案例做这样的事情。仔细检查您构建的源代码是否与jar中打包的类对应,它们必须同步。如果您加载了一个从旧的源代

我正在为ImageJ编写一个插件,使用Ant脚本将所有需要的文件放入一个jar中。ImageJ加载一个目录中的所有JAR,然后我运行我的插件。然而,当我试图调试我的程序时,IntelliJ声称“在类y的x行没有找到可执行代码”。我该如何解决这个问题呢?

我不确定,但您需要源代码来查看调试的内容。每次添加JAR时,您都有机会告诉IntelliJ在哪里可以找到它附带的源文件。看看您是否可以为您的案例做这样的事情。

仔细检查您构建的源代码是否与jar中打包的类对应,它们必须同步。如果您加载了一个从旧的源代码构建的jar,那么可能会导致这样的问题。还要确保编译时启用了调试信息。如果从Ant执行编译,则必须为javacAnt任务指定debug=true属性


如果Ant构建中涉及到一些混淆或字节码操作,那么调试时也可能会出现问题。

我不是将jar文件添加到IntelliJ本身,而是使用Ant脚本创建它。我应该做些不同的事情吗?IntelliJ当然知道我的所有源代码在哪里(也就是说,项目结构窗口的模块选项卡的“源文件夹”列表中有我的源代码目录)。这里是Java新手,所以你可能会认为我做了一些幼稚的事情:-PThanks-我缺少的是
debug=true
。你知道有没有办法根据我是单击“运行”还是“调试”来指定是否设置调试标志?或者我需要两个独立的配置吗?不,这些东西不相关。此标志仅影响从Ant执行的编译。