Как добавить аргументы JVM по умолчанию с помощью Gradle
мне нужно добавить параметры JVM по умолчанию в мою банку при сборке с Gradle. Из документации я получил, что должен установить:
applicationDefaultJvmArgs = ["-Djavafx.embed.singleThread=true"]
у меня нет большого опыта работы с Gradle и разработчиком, который написал сборку.gradle файл написал его отличается от того, что большинство веб-сайтов дают в качестве примера.
вот сборка.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
Спасибо, Джонни!--4-->
3 ответов
С верхней части моей головы я могу думать о 2 вариантах:
Option1: сделайте то, что сказал @ 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
}
}
Вариант 2: используйте плагин приложения + значения jvm по умолчанию
построить.Gradle в:
apply plugin: 'application'
//your code
applicationDefaultJvmArgs = ["-Djavafx.embed.singleThread=true"]
теперь вы можете запустить свой код 2 способами:
из gradle
$gradle run
из рассылки(сценарий). из сгенерированного скрипта, что плагин приложения будет обеспечить:
$gradle clean build distZip
затем gradle создаст zip-файл где-то под ${your.projectdir}/build
. Найдите zip, затем распакуйте его и под /bin
вы можете найти ${yourproject}.bat
и ${yourproject}
исполняемые файлы. Один для Linux / mac / unix (${yourproject}
) другой для windows (${yourproject.bat}
)
applicationDefaultJvmArgs предоставляется Application
плагин. Поэтому, если вы примените этот плагин, ошибка, вероятно, исчезнет, и вы сможете выполнить программу, выпустив gradle run
после установки свойства mainClassName полное имя класса, основной метод которого требуется вызвать.
вы можете использовать командную строку с задачей gradle:
class AppRun extends JavaExec {
private boolean withDebug
@Option(option = "with-debug", description = "enable debug for the process. ")
public void setDebugMode(boolean debug) {
this.withDebug = debug
}
public boolean getDebugMode() {
return this.withDebug
}
}
task run(type: AppRun) {
}
затем запустите задачу с параметрами
gradle run --with-debug