- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 System.out.println("test")
命令所在的行上有一个断点。我相信命令是通过执行到达的,因为我看到了打印的字符串“test”。但是断点被忽略了。
断点始终是一个红色圆圈,没有勾号或叉号。我认为当 IDEA 认为该类未加载时,这是一个问题,而它是,因为命令已执行。
我可以在各种情况下重现它:
当我按下调试时(使用 maven 配置 install exec:exec -DforkMode=never
)
远程调试 - 我在控制台中以 Debug模式运行 maven 目标:
mvnDebug install exec:exec -DforkMode=never
或
mvnDebug install exec:exec
IDEA中的远程调试配置:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
在这两种情况下,调试器只打印“连接到目标虚拟机,地址:'localhost:8000',传输:'socket'”
我也尝试过 File > Invalidate Caches/Restart
和干净的构建,但断点仍然被忽略。
配置:
Ubuntu 13.10
IntelliJ IDEA 终极版本 133.944
Apache maven 3.0.4
Java版本:1.7.0_51,供应商:Oracle Corporation
操作系统名称:“linux”,版本:“3.11.0-17-generic”,arch:“amd64”,系列:“unix”
编辑:pom.xml 的相关部分:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<executable>java</executable>
<arguments>
<argument>-D--secret--.server.configuration=/usr/local/etc</argument>
<argument>-classpath</argument><classpath/>
<argument>com.--secret--.Server</argument>
</arguments>
</configuration>
</plugin>
最佳答案
现在,在大多数情况下,调试应该开箱即用。
较新版本的 IntelliJ IDEA(使用 2020.3 测试)现在可以自动检测 maven exec
配置并添加适当的选项以启用调试。参见 IDEA-189973了解更多信息。谢谢@Gili对于opening a ticket for this functionality回到 2018 年。
尽管如此,我下面的原始答案仍然对旧版本的 IntelliJ、远程调试或在使用某些 Maven/Gradle 插件进行调试时有用,这些插件会 fork VM 并需要手动将调试选项传递到下游(相应地调整配置)。
我的解决方案:
考虑到您有一个依赖于系统属性的程序:
package com.mycompany.app;
public class App {
private static final String GREETING = System.getProperty("greeting", "Hi");
public static void main(String[] args) {
int x = 10;
System.out.println(GREETING);
}
}
并且您正在使用 exec:exec
运行它:
mvn exec:exec -Dexec.executable=java "-Dexec.args=-classpath %classpath -Dgreeting=\"Hello\" com.mycompany.app.App"
通过一些“初始魔法”,我们可以调试由 Mavenexec:exec
启动的进程。
更改您的 exec:exec
目标以启用远程调试。我正在使用 suspend=y
和 server=n
,但可以随意配置 JDWP Agent如你所愿:
-agentlib:jdwp=transport=dt_socket,server=n,address=127.0.0.1:8000,suspend=y`
这将不会直接传递给maven JVM,而是传递给exec.args
,exec:exec
:
mvn exec:exec -Dexec.executable=java "-Dexec.args=-classpath %classpath -agentlib:jdwp=transport=dt_socket,server=n,address=127.0.0.1:8000,suspend=y -Dgreeting=\"Hello\" com.mycompany.app.App"
IntelliJ IDEA
创建一个Remote
配置(我再次使用Listen 策略。您应该相应地调整它):
现在切换您的断点并调试您的远程配置。使用上面的设置,它将等到您的进程开始:
最后运行上面的 exec:exec
行并随意调试您的应用程序:
所以基本上你需要两个“运行/调试”配置才能工作:
- 具有系统属性和 JDWP 代理配置的
exec:exec
的 Maven 配置:
- 充当客户端的远程配置。
关于java - IntelliJ IDEA 13 调试器不会在 Maven 项目的 Java 断点处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22229088/
我有以下内容: sourceSets { integrationTest { java.srcDir file('.') } } dependencies {
有没有一种简单的方法可以在 IntelliJ IDEA 中为非 Java 项目配置完全自定义的构建过程?基本上,我只需要运行一个自定义的 shell 命令,而不是任何更智能的构建过程。 最佳答案 尝试
有没有办法用快捷方式将变量拉到 try-catch 块之外?例如: 来自: try{ AbstractList t1 = new ArrayList(); } catch (Exception
当我启动 IntelliJ IDEA 时,会出现该消息,但我找不到有关该功能的任何信息以及它如何帮助我。 Enable smart keyboard internalization for IDEA.
这个问题在这里已经有了答案: 10年前关闭。 Possible Duplicate: Intellij Idea 9, what folders to check into (or not check
我的目录中有一个名为 protected.keys 的新资源文件。创建它时,我要求 IntelliJ 将其视为 properties。 相反,我想将其更改为 text 请问我该怎么做? 最佳答案 您可
我的目录中有一个名为 protected.keys 的新资源文件。创建它时,我要求 IntelliJ 将其视为 properties。 相反,我想将其更改为 text 请问我该怎么做? 最佳答案 您可
我有一个带有两个 child 的 Gradle 的 Kotlin 项目。每当我尝试在 IDEA 中打开它时,其中一个 child 会在树中显示两次。 在树中,您可以在顶层看到两个项目,grpc 和 g
我不确定这是更多 Gradle 还是 Intellij Idea 问题。在 projet 中,我使用 gradle import(从 Idea 中的 Gradle 外部模型导入)导入到 Idea,我的
我在 Gradle 多项目配置上使用 idea 插件来生成 Intellij 配置文件。目前,构建在 Gradle 中运行良好,但由于缺少 JPA 元模型源文件,它在 IDE 上给了我错误。 我的问题
我在 事件日志 中得到信息 08:54:02 无法导入 maven 项目:查看日志了解详情 在 Intellij IDEA 15CE 中哪里可以找到这个日志文件? 最佳答案 您可以从 Help 访问事
我的 IntelliJ IDEA 有问题。当我打开 Find in Path 时,它显示在第二个监视器的模态窗口中,而不是像以前一样显示在主窗口内的窗口中。无法将该窗口移动到主监视器。我不记得我是否更
我按照以下 session 中的说明安装了 IntelliJ IDEA。 Install IntelliJ IDEA as a snap package on Linux sudo snap inst
可以在 IntelliJ IDEA 中配置多种类型的终端,例如cmd、powershell、git bash 等? 最佳答案 目前不可能,但有一个相关的功能请求:https://youtrack.je
我下载了 intellij 社区版。DropToFrame 是不是只有终极版才有? 任何其他插件将此添加到 intellij 社区版 谢谢 最佳答案 Drop Frame 已重命名为 Reset Fr
每次写“todo”评论时,我都面临着写我的 vcs 当前分支名称的问题。 最近我了解了 Intellij 的“Live Templates”,使用起来非常舒服。我尝试将它应用于我的问题,但没有模板可以
有一天,我运行了一些大的东西,弹出一个窗口说堆内存内存不足,我在那个窗口中将其设置为2014M,然后单击继续。一切都很好。 但我不喜欢数字 2014,我想要它 2048。因此,我更改了 idea64.
当我尝试编辑和保存 javascript 文件时,IntelliJ 使它不可能: 无法保存 C:\Users\dev\joo-web\trunk\joo-admin-web\src\main\weba
我在一个相当大的项目中升级了 IntelliJ Idea 中的语言级别,我想找到所有已弃用的方法用法 - 我寻找所有出现的罢工。 我为 PhpStorm 找到了一个类似的问题建议的方法在哪里: 代码
我必须对使用匈牙利表示法的遗留代码(以及系统匈牙利语)进行一些维护。不幸的是,将它全部从代码库中清除对我来说是不切实际的。 本地 Eclipse 用户声称可以配置 Eclipse 以便自动生成的访问器
我是一名优秀的程序员,十分优秀!