【发布时间】:2016-05-16 15:48:29
【问题描述】:
在使用 Gradle 构建时,我需要将默认 JVM 选项添加到我的 jar 中。 从我得到的文档中我必须设置:
applicationDefaultJvmArgs = ["-Djavafx.embed.singleThread=true"]
我对 Gradle 没有太多经验,编写 build.gradle 文件的开发人员编写的文件与大多数网站提供的示例不同。
这里是 build.gradle:
apply plugin: 'java'
apply plugin: 'eclipse'
version = '0.1'
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.+'
compile 'placeholder'
}
task release(type: Jar) {
manifest {
attributes("Implementation-Title": "placeholder",
"Implementation-Version": version,
'Main-Class': 'placeholder.Application')
}
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}
task wrapper(type: Wrapper) {
gradleVersion = '2.2.1'
}
我不知道把论据放在哪里。我尝试将它们放在不同的位置,但我总是得到:
A problem occurred evaluating root project 'placeholder'.
> No such property: applicationDefaultJvmArgs for class: org.gradle.api.tasks.bundling.Jar_Decorated
非常感谢, 强尼
【问题讨论】:
-
什么时候需要添加JVM参数?您可以在主类的初始化静态中设置系统变量吗?
-
我需要在编译时添加参数,所以用户在启动他的.jar时不必手动添加它
-
您可以在代码中执行
System.setproperty("javafx.embed.singleThread", "true")之类的操作,但您需要确保在系统属性在某处被访问之前执行此语句。
标签: java gradle jar build.gradle jvm-arguments