【问题标题】:How build EXE from TornadoFX JAR?如何从 TornadoFX JAR 构建 EXE?
【发布时间】:2021-09-16 05:14:18
【问题描述】:

我在 Windows 上有一个简单的 JavaFX/TornadoFX 项目,它构建在 JAR 中,并在 IntelliJ IDEA 和我计算机上安装的 JRE 中正确运行。我想让这个项目可以在没有安装 JRE 的任何 Windows 机器上运行。为此,我在 IntelliJ 中创建了一个工件“JavaFx 应用程序”,并按照 TornadoFX 的说明对其进行了配置。

project settings

project settings

可执行文件构建成功,但是当我尝试运行它时,我收到错误消息“com/example/demo/app/MyApp 类中没有 main 方法。”

我尝试将 main 添加到项目代码中,因为它是在 TornadoFX 的说明中编写的,但我无法在项目设置中指定此方法。

project settings

只有MyApp类可以自动添加,当然不包含main方法。

project settings

我做错了什么,如何在 Windows 下制作可执行文件?

我在 MyApp.kt 中的代码:

package com.example.demo.app

import com.example.demo.view.MainView
import tornadofx.App
import tornadofx.launch

class MyApp: App(MainView::class, Styles::class)

fun main(args: Array<String>) {
    launch<MyApp>(args)
}

【问题讨论】:

  • “选择应用程序类”对话框允许您在此处选择一个类,因此您不能选择主要方法。选择 MyApp 应该能够使用该主要方法。此外,您无法使用这种方式在 IDEA 中构建 exe。它只构建罐子。您需要使用其他方式,例如github.com/fvarrui/JavaPackager
  • 在我看来,JavaPackager 没有将 JRE 分发添加到可执行文件中。我希望没有安装 JRE 的用户能够在没有任何额外步骤的情况下运行我的应用程序。如果用户已经安装了JRE,那么他可以立即启动*.jar,并且不需要将其屏蔽为*.exe。 IntellyJ 创建一个分发工具包,通过启动应用程序来安装 JRE。一切都会好起来的,但我在描述这个线程时遇到了问题。

标签: intellij-idea javafx exe tornadofx


【解决方案1】:

我再次仔细阅读 TornadoFx 的手册并看到了重要的短语:“Notice the Kt at the end.”。因此,在应用程序类字段的项目设置中,您需要手动添加“Kt”。我做到了,结果如我所愿。

【讨论】:

    猜你喜欢
    • 2020-02-16
    • 2013-10-18
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 2011-01-19
    • 2019-07-27
    相关资源
    最近更新 更多