关于 kotlin:如何从启动器类启动 TornadoFX 应用程序 | 珊瑚贝

How to start a TornadoFX app from a launcher class


众所周知,对于较新版本的 javafx 应用程序,要使 fatjar 正确运行,启动应用程序的主类不能从 Application 类继承。简单的解决方法是创建一个调用主类的主要方法的启动器类。

我在使用 Kotlin 和 TornadoFX 时遇到了麻烦(两者都很新)。

我的示例应用程序是最小的:

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

问题是如何从另一个启动器类开始这个类?


我认为最简单也可能是最好的方法是使用如下函数。

如果我们创建一个 Kotlin 文件 Launcher.kt 名称并不重要。

下面的内容

1
2
3
4
5
6
7
8
package my.app

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

// stand alone function
fun main(args: Array<String>) {
launch<MyApp>(args)
}

那么主类名将是
mainClassName = ‘my.app.MyAppKt’

现在我们有一个在 jar 清单中使用的主类声明,或者我们可以使用阴影插件来创建胖 jar,如下所示 Shadow JAR

注意这里的启动函数来自 tornadofx.App.kt


我所做的是把函数:

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

在同一个文件中,但在 App 类之外。然后我让我的 IDE 和构建工具(在我的例子中是 Maven)指向这个文件。


来源:https://www.codenong.com/59937274/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_8883.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?