从(现有)Kotlin程序启动TornadoFX应用程序 fun main(args:Array){ HelloWorldApp().launch() } fun App.launch(){ JFXPanel() Platform.runLater({ 开始(阶段()) }) }

从(现有)Kotlin程序启动TornadoFX应用程序 fun main(args:Array){ HelloWorldApp().launch() } fun App.launch(){ JFXPanel() Platform.runLater({ 开始(阶段()) }) },kotlin,tornadofx,Kotlin,Tornadofx,这就是我现在所做的。有更好的方法吗?更简洁的方式 以这种方式从同一kotlin程序中运行多个不同的TornadoFX应用程序安全吗?我在某个地方读到一些关于全局变量的信息,所以我想知道是否只允许/建议使用1。JVM已经知道如何启动JavaFX应用程序,并且由于您的应用程序类扩展了tornadFX.App,它再次扩展了JavaFX.application.application,您只需将JVM指向该主类,它就可以正常运行。如果您想显式启动TornadFX应用程序,JavaFX提供了一种应该使用的静

这就是我现在所做的。有更好的方法吗?更简洁的方式


以这种方式从同一kotlin程序中运行多个不同的TornadoFX应用程序安全吗?我在某个地方读到一些关于全局变量的信息,所以我想知道是否只允许/建议使用1。

JVM已经知道如何启动JavaFX应用程序,并且由于您的应用程序类扩展了
tornadFX.App
,它再次扩展了
JavaFX.application.application
,您只需将JVM指向该主类,它就可以正常运行。如果您想显式启动TornadFX应用程序,JavaFX提供了一种应该使用的静态
launch
方法

启动JavaFX或TornadoFX应用程序的典型主要功能是:

fun main(args: Array<String>) {

    HelloWorldApp().launch()
}

fun App.launch() {
    JFXPanel()
    Platform.runLater({
        start(Stage())
    })
}
fun main(args:Array){
launch(HelloWorldApp::class.java,*args)
}
JavaFX只允许在JVM的生命周期中调用一次
Application.launch
函数,因此实际上不能启动多个函数。但是,TornadFX提供了特殊的OSGi支持,允许您通过使用应用程序代理实例在同一JVM中实际停止并重新启动其他TornadFX应用程序


TornadFX还通过使用作用域支持JPro,这允许多个应用程序实例,但实际上不需要调用
应用程序。多次启动

JVM已经知道如何启动JavaFX应用程序,由于您的应用程序类扩展了
tornadFX.App
,它再次扩展了
javafx.application.application
,因此您只需将JVM指向该主类,它就会正常运行。如果您想显式启动TornadFX应用程序,JavaFX提供了一种应该使用的静态
launch
方法

启动JavaFX或TornadoFX应用程序的典型主要功能是:

fun main(args: Array<String>) {

    HelloWorldApp().launch()
}

fun App.launch() {
    JFXPanel()
    Platform.runLater({
        start(Stage())
    })
}
fun main(args:Array){
launch(HelloWorldApp::class.java,*args)
}
JavaFX只允许在JVM的生命周期中调用一次
Application.launch
函数,因此实际上不能启动多个函数。但是,TornadFX提供了特殊的OSGi支持,允许您通过使用应用程序代理实例在同一JVM中实际停止并重新启动其他TornadFX应用程序


TornadFX还通过使用作用域支持JPro,这允许多个应用程序实例,但实际上不需要调用
应用程序。多次启动

您可以这样启动它:

fun main(args: Array<String>) {
    Application.launch(HelloWorldApp::class.java, *args)
}
fun main(args:Array){
发射(args)
}

launch
函数在
TornadFX
包中定义为顶级函数,
HelloWorldApp
是一个随机的
应用程序
类。

您可以这样启动它:

fun main(args: Array<String>) {
    Application.launch(HelloWorldApp::class.java, *args)
}
fun main(args:Array){
发射(args)
}

launch
函数在
TornadFX
包中定义为顶级函数,
HelloWorldApp
是一个随机的
应用程序
类。

我读到文档中的
Application.launch()
只能运行一次。。。它也不会执行它后面的下一行。例如,放置一个
println(“某物”)
你看不到打印出来的文本-我想我的标题不够具体..我是说从一个现有的Kotlin程序中。谢谢你的解释是的,这就是它的工作原理-你只能调用一次,但你可以在任何地方、任何时间调用。如果需要,你可以将调用封装在一个线程中。我读到Application.launch()
只能运行一次…并且它也不会执行它后面的下一行。例如,放置一个
println(“某物”)
,您将看不到打印的文本-我想我的标题不够具体。。我的意思是从现有的科特林项目。谢谢你的解释是的,这就是它的工作原理-你只能打一次电话,但是你可以在任何地方,任何时候打电话。如果需要,可以将调用包装在线程中。