java - 带有gradle的NetBeans中的JVM参数

标签 java gradle jvm netbeans-8

我在将NetBeans中的JVM参数传递给我的Gradle项目时遇到困难。我以前的尝试没有成功,也许有人可以帮助我。

到目前为止,这是我尝试过的:
我通过右键单击项目->属性->内置任务->运行->将JVM值添加到指定字段中来添加JVM参数

-Dtest=mytestvalue

(不幸的是,我的声誉不足以添加嵌入式图像)
当我之后通过右键单击运行项目并显示时:
Executing: gradle :run
Arguments: [-PcmdLineArgs=, -c, D:\NetBeansProjects\app\settings.gradle]
JVM Arguments: [-Dtest=mytestvalue]

:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:run

10:54:55.899 [main] System.getProperty('test') null

因此,参数以JVM Arguments: [-Dtest=mytestvalue]显示,但似乎没有传输到应用程序,并且System.getProperty('test')导致了null。我还尝试使用具有相同效果的自定义任务。

如果我创建一个jar文件并传递参数,那么一切都会按预期进行:
λ java -Dtest=mytestvalue -jar app.jar
System.getProperty('test') mytestvalue
System.getProperty('test')生成mytestvalue

我当前的解决方法是在build.gradle文件中设置JVM参数,该参数可以正常工作,但是我想摆脱将参数直接写入该文件的麻烦。

我正在使用Gradle 3.3和NetBeans 8.2

最佳答案

将属性传递给gradle构建与将其传递给应用程序之间是有区别的。您已经知道可以在build.gradle中设置属性(在https://docs.gradle.org/current/userguide/application_plugin.html中进行了描述)。您可以做的是将一个属性传递给Gradle,然后在buildfile中查找该属性,并将其进一步传递给您启动的应用程序。
顺便说一句:执行此操作时,您可以按照https://docs.gradle.org/current/userguide/build_environment.html#properties中的说明将系统属性(-D)或项目属性(-P)传递给Gradle

关于java - 带有gradle的NetBeans中的JVM参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41631963/

相关文章:

java - 使用 Sigar API 获取 JVM CPU 使用率

java - Netbeans,分布式 Jar 文件,增加堆大小

java - 解析时间字符串时出错

android - 找不到方法 commandLine()

android - Dagger 2 : Gradle module dependency with implementation in another module

java - 在我自己的 JVM 上运行 Java 代码

java - Java 字符串末尾的 "..."= 内存空间不足?

java - Guice/DI 和混合注入(inject)和运行时传入的参数

java - 翻转存储为 byte[] 数组的图像

java - Gradle -compileTestGroovy 无法解析主应用程序类