无法运行JavaFX - Kotlin app

时间:2017-11-18 15:53:40

标签: javafx kotlin desktop

我无法运行我的javafx - kotlin应用程序。

我的初学者课程

class Starter : Application() {

  override fun start(primaryStage: Stage?) {
      val root : Parent = FXMLLoader.load(javaClass.getResource("view/main.fxml"))
      primaryStage?.title = "Title"
      primaryStage?.scene = Scene(root)
      primaryStage?.show()
  }

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

我无法将参数“args”传递给“launch”方法,因为编译器说:

  

错误:(19,9)Kotlin:无法调用以下任何函数   使用提供的参数:public open fun launch(p0:Class!,vararg p1:String!):在   javafx.application.Application public open fun launch(vararg p0:   String!):在javafx.application.Application

中定义的单位

如果我在没有参数的情况下尝试调用“启动”方法,我有以下异常

  

线程“main”java.lang.reflect.InvocationTargetException中的异常     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:498)at   sun.launcher.LauncherHelper $ FXHelper.main(LauncherHelper.java:767)   引起:java.lang.NullPointerException at   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:498)at   com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)     在   com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)     ......还有5个

1 个答案:

答案 0 :(得分:2)

您需要使用传播运算符

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