Gradleでビルドするときに、jarにデフォルトのJVMオプションを追加する必要があります。ドキュメンテーションから、私は設定する必要があることを得ました:
applicationDefaultJvmArgs = ["-Djavafx.embed.singleThread=true"]
私はGradleについてあまり経験がなく、build.gradleファイルを作成した開発者は、ほとんどのWebサイトが例として提供しているものとは異なります。
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
ジョニー、どうもありがとう
私の頭の上から私は2つのオプションを考えることができます:
オプション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
}
}
オプション2:アプリケーションプラグインを使用+デフォルトのjvm値
build.gradle:
apply plugin: 'application'
//your code
applicationDefaultJvmArgs = ["-Djavafx.embed.singleThread=true"]
これで、2つの方法でコードを実行できます。
グラドルから
$gradle run
配布元(スクリプト)から。アプリケーションプラグインが提供する生成されたスクリプトから:
$gradle clean build distZip
その後、gradleは${your.projectdir}/build
の下のどこかにZipファイルを生成します。 Zipを見つけて解凍し、/bin
の下に${yourproject}.bat
および${yourproject}
実行可能ファイルがあります。 1つはLinux/mac/unix用(${yourproject}
)、もう1つはWindows用(${yourproject.bat}
)
オプション3(Android開発者):gradle.propertiesを使用してjvm引数を設定します
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx1024m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# You can setup or customize it according to your needs and combined with the above default value.
org.gradle.jvmargs=-Djavafx.embed.singleThread=true
docs.gradle.org でgradleビルド環境を使用する方法の詳細について
applicationDefaultJvmArgsは、 Application
プラグインによって提供されます。そのため、そのプラグインを適用すると、エラーはおそらくなくなり、mainClassNameプロパティを完全修飾クラス名に設定すると、gradle run
を発行してプログラムを実行できるようになります。呼び出す。
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