在 IntelliJ 或 Eclipse 中设置 java 系统属性

Posted

技术标签:

【中文标题】在 IntelliJ 或 Eclipse 中设置 java 系统属性【英文标题】:Set java system properties in IntelliJ or Eclipse 【发布时间】:2015-06-09 20:38:47 【问题描述】:

我有一个项目可以在终端命令下正确运行

mvn package exec:java -Dplatform.dependencies -Dexec.mainClass=Demo

现在,我需要在 Mac(最好是 IntelliJ)上使用 IntelliJ 或 Eclipse 正确调试它(不是终端),但我尝试在不同的地方设置 VM 选项,但似乎没有任何效果。

放置这些选项的正确位置在哪里:-Dplatform.dependencies -Dexec.mainClass=Demo?

【问题讨论】:

【参考方案1】:

运行 -> 编辑配置 -> 修改选项(右上角的蓝色链接) -> [v] 添加虚拟机选项 -> 填写额外的输入行“虚拟机选项”

【讨论】:

【参考方案2】:

在 IntelliJ 中,它的工作原理如下: 转到配置 -> VM 选项并添加参数/值对:

-DmyParameter=value

确保在“-”之后添加一个“D”!

【讨论】:

你确定这行得通吗?在我的系统上我必须添加 -D,否则会引发异常。【参考方案3】:

如果您像我一样,在这里尝试运行使用 -P 语法而不是 -D 语法的测试,您可以简单地按照 MZF 的说明进行操作,但使用 -D 代替 -P.

比如我在命令行上的测试执行为:

./gradlew -Penvironment=qa project:test

在 VM 行的 intellij 中使用 -P 被拒绝。但是,将 -P 更改为 -D 最终会起作用。

【讨论】:

【参考方案4】:

在 InteliJ 中转到“运行”->“编辑配置” 在新窗口的右侧面板中,打开 Junit 并单击您的测试。 现在,在中间单击“配置”选项卡并更新“虚拟机选项”

请注意,您需要为每个测试类执行此操作,但您可以从右侧面板中的 junit 中删除所有测试并在“默认值”中更新它

【讨论】:

谢谢 Mzf,但我创建了测试,但我仍然收到在 java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil 之前遇到的错误,我没有使用终端命令。 如果您必须单独运行多个测试,则必须为每个测试定义属性会很麻烦。你可以去Run -> Edit Configurations -> Defaults -> JUnit;现在将该属性添加到VM options。现在,您运行的每个 junit 测试都将定义该属性。当您从该项目继续前进时,请确保删除默认值。 请注意,在一些最新版本的 IDEA 中,Edit Configurations 左侧窗格中的 Defaults 部分现在已重命名为 Templates Run -> Edit Configurations 然后呢?

以上是关于在 IntelliJ 或 Eclipse 中设置 java 系统属性的主要内容,如果未能解决你的问题,请参考以下文章

在Intellij中设置grails项目

IntelliJ:如何在 settings.xml 中设置变量?

无法使用 intellij 13.1.2 在 grails 2.3.8 中设置断点

Eclipse中设置作者日期等Java注释模板

如何在 IntelliJ IDEA 中设置多语言项目

如何在 Intellij / DataGrip Mongo DB Shell 中设置显示 20 多个结果