如何从启动器启动 TornadoFX 应用 class
How to start a TornadoFX app from a launcher class
对于更新版本的 javafx 应用程序来说,well known 一个 fatjar 正确地 运行 启动应用程序的主要 class 不能继承应用程序 class .简单的解决方法是创建一个启动器 class 调用 main class.
的主要方法
我在使用 Kotlin 和 TornadoFX(两者都很新)时遇到了问题。
我的示例应用程序是最小的:
class MyApp: App(MainView::class, Styles::class)
问题是如何从另一个启动器 class 启动这个 class?
我所做的是放置函数:
fun main(args: Array<String>) {
launch<MyApp>(args)
}
在同一个文件中,但在应用程序之外 class。然后我让我的 IDE 和构建工具(在我的例子中是 Maven)指向这个文件。
我认为最简单也可能是最好的方法是使用如下函数。
如果我们制作一个 Kotlin 文件 Launcher.kt 名称并不重要。以下内容
package my.app
class MyApp: App(MainView::class, Styles::class)
// stand alone function
fun main(args: Array<String>) {
launch<MyApp>(args)
}
那么主要 class 名称将是
mainClassName = 'my.app.MyAppKt'
现在我们有一个主要的 class 声明,它在 jars 清单中使用,或者我们可以使用 shadow 插件来创建 fat jars,如此处所示 Shadow JAR
注意这里的启动函数来自tornadofx.App.kt
对于更新版本的 javafx 应用程序来说,well known 一个 fatjar 正确地 运行 启动应用程序的主要 class 不能继承应用程序 class .简单的解决方法是创建一个启动器 class 调用 main class.
的主要方法我在使用 Kotlin 和 TornadoFX(两者都很新)时遇到了问题。
我的示例应用程序是最小的:
class MyApp: App(MainView::class, Styles::class)
问题是如何从另一个启动器 class 启动这个 class?
我所做的是放置函数:
fun main(args: Array<String>) {
launch<MyApp>(args)
}
在同一个文件中,但在应用程序之外 class。然后我让我的 IDE 和构建工具(在我的例子中是 Maven)指向这个文件。
我认为最简单也可能是最好的方法是使用如下函数。
如果我们制作一个 Kotlin 文件 Launcher.kt 名称并不重要。以下内容
package my.app
class MyApp: App(MainView::class, Styles::class)
// stand alone function
fun main(args: Array<String>) {
launch<MyApp>(args)
}
那么主要 class 名称将是
mainClassName = 'my.app.MyAppKt'
现在我们有一个主要的 class 声明,它在 jars 清单中使用,或者我们可以使用 shadow 插件来创建 fat jars,如此处所示 Shadow JAR
注意这里的启动函数来自tornadofx.App.kt