【发布时间】:2021-09-16 05:14:18
【问题描述】:
我在 Windows 上有一个简单的 JavaFX/TornadoFX 项目,它构建在 JAR 中,并在 IntelliJ IDEA 和我计算机上安装的 JRE 中正确运行。我想让这个项目可以在没有安装 JRE 的任何 Windows 机器上运行。为此,我在 IntelliJ 中创建了一个工件“JavaFx 应用程序”,并按照 TornadoFX 的说明对其进行了配置。
可执行文件构建成功,但是当我尝试运行它时,我收到错误消息“com/example/demo/app/MyApp 类中没有 main 方法。”
我尝试将 main 添加到项目代码中,因为它是在 TornadoFX 的说明中编写的,但我无法在项目设置中指定此方法。
只有MyApp类可以自动添加,当然不包含main方法。
我做错了什么,如何在 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