【发布时间】:2021-03-26 08:26:33
【问题描述】:
使用java --module-path {$SDK_PATH} add-modules javafx.controls, javafx.fxml, javafx.media -jar frogger.jar 运行已编译的可执行jar 很好。但是,我会说,从 launch4j 执行编译的 exe 不会运行或静默崩溃。我在这里做错了什么吗?有什么方法可以查看错误吗?
我已将解压缩的 jre 复制并粘贴到捆绑目录中。所以我猜测问题是我在 build.gradle 中的 launch4j 配置错误或 jre 版本错误。
我粘贴的jre是AdoptOpenJDK windows x64 jdk-15.0.1+9
plugins {
id 'java'
id 'org.openjfx.javafxplugin' version '0.0.9'
id 'application'
id 'edu.sc.seis.launch4j' version '2.4.9'
}
group 'com.tsb'
version '1.0'
mainClassName = 'com.tsb.frogger.core.Launcher'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'junit:junit:4.12'
}
javafx {
version = '15'
modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.media']
}
task myJavadocs(type: Javadoc) {
source = sourceSets.main.allJava
}
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
launch4j {
// headerType = "console"
mainClassName = "$mainClassName"
icon = "${projectDir}/icons/frogger.ico"
bundledJrePath = "jre"
bundledJre64Bit = true
}
【问题讨论】:
-
您是否尝试过使用
Consoleheader type?这应该让你看到输出,这样你就可以看到是否有任何异常。 -
问题是console开启时会立即打开和关闭。
-
从命令行启动应用程序(启用控制台)。将标准和错误输出重定向到文件或包含参数,以便应用程序使用与您启动它的控制台相同的控制台(例如,在 PowerShell 中,您将包含
-NoNewWindow -Wait)。
标签: java javafx executable-jar launch4j