【问题标题】:Launch4j exe crashed silently or can't executeLaunch4j exe 静默崩溃或无法执行
【发布时间】: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
}

【问题讨论】:

  • 您是否尝试过使用Console header type?这应该让你看到输出,这样你就可以看到是否有任何异常。
  • 问题是console开启时会立即打开和关闭。
  • 从命令行启动应用程序(启用控制台)。将标准和错误输出重定向到文件或包含参数,以便应用程序使用与您启动它的控制台相同的控制台(例如,在 PowerShell 中,您将包含 -NoNewWindow -Wait)。

标签: java javafx executable-jar launch4j


【解决方案1】:

我建议您看一下 jpackage,而不是使用 launch4j,它在 JDK 14 和 15 中可用。请参阅Packaging Tool User's Guide。请注意,对于 Windows,您还需要下载 WiX toolset

【讨论】:

    猜你喜欢
    • 2017-09-25
    • 2014-06-24
    • 2017-02-28
    • 2016-11-25
    • 2017-02-22
    • 1970-01-01
    • 2022-11-30
    • 2018-12-11
    • 1970-01-01
    相关资源
    最近更新 更多