#java #javafx #executable-jar #launch4j
#java #javafx #исполняемый файл-jar #launch4j
Вопрос:
Запуск скомпилированного исполняемого файла jar с java --module-path {$SDK_PATH} add-modules javafx.controls, javafx.fxml, javafx.media -jar frogger.jar
помощью в порядке. Однако, я бы сказал, что выполнение скомпилированного exe-файла из launch4j не будет выполняться или не будет выполняться без сбоев. Есть ли что-то, что я здесь делаю неправильно? Есть ли какой-либо способ увидеть ошибку?
Я скопировал и вставил распакованный jre в объединенный каталог. Поэтому я предполагаю, что проблема либо в моей конфигурации launch4j в build.gradle, либо в неправильной версии 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
}
Комментарии:
1. Вы пробовали использовать
Console
тип заголовка ? Это должно позволить вам увидеть выходные данные, чтобы вы могли видеть, есть ли какие-либо исключения.2. Проблема в том, что он открывается и закрывается мгновенно, когда консоль включена.
3. Запустите приложение из командной строки (с включенной консолью). Либо перенаправьте стандартный вывод и вывод ошибок в файл, либо включите аргументы, чтобы приложение использовало ту же консоль, с которой вы его запустили (например, в PowerShell, который вы бы включили
-NoNewWindow -Wait
).
Ответ №1:
Вместо того, чтобы использовать launch4j, я рекомендую вам взглянуть на jpackage, который доступен в JDK 14 и 15. См. Руководство пользователя Packaging Tool. Обратите внимание, что для Windows вам также потребуется загрузить набор инструментов WiX.