Jho*_*007 15 java jar jvm-arguments gradle build.gradle
我需要在使用Gradle构建时向我的jar添加默认JVM选项.从我得到的文档中我必须设置:
applicationDefaultJvmArgs = ["-Djavafx.embed.singleThread=true"]
Run Code Online (Sandbox Code Playgroud)
我没有太多使用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'
}
Run Code Online (Sandbox Code Playgroud)
我不知道在哪里提出论点.我尝试将它们放在不同的位置,但我总是得到:
A problem occurred evaluating root project 'placeholder'.
> No such property: applicationDefaultJvmArgs for class: org.gradle.api.tasks.bundling.Jar_Decorated
Run Code Online (Sandbox Code Playgroud)
非常感谢,Jhonny
por*_*nez 23
从头顶我可以想到两个选项:
选项1:做什么@Ethan说,它可能会起作用:
package placeholder;
//your imports
public class Application{
static {
System.getProperties().set("javafx.embed.singleThread", "true");
}
// your code
public static void main(String... args){
//your code
}
}
Run Code Online (Sandbox Code Playgroud)
选项2:使用应用程序插件+默认的jvm值
的build.gradle:
apply plugin: 'application'
//your code
applicationDefaultJvmArgs = ["-Djavafx.embed.singleThread=true"]
Run Code Online (Sandbox Code Playgroud)
现在您可以通过以下两种方式运行代码:
从gradle
$gradle run
Run Code Online (Sandbox Code Playgroud)
从分发(脚本).从应用程序插件将提供的生成脚本:
$gradle clean build distZip
Run Code Online (Sandbox Code Playgroud)
然后gradle将生成一个zip文件${your.projectdir}/build.找到zip然后解压缩它,/bin你会发现一个${yourproject}.bat和${yourproject}可执行文件.一个用于Linux/mac/unix(${yourproject}),另一个用于windows(${yourproject.bat})
| 归档时间: |
|
| 查看次数: |
34927 次 |
| 最近记录: |