【问题标题】:Can't run JavaFX - Kotlin app无法运行 JavaFX - Kotlin 应用程序
【发布时间】:2018-05-02 06:05:57
【问题描述】:

我无法运行我的 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”方法,因为编译器说:

Error:(19, 9) Kotlin: 不能调用以下函数 提供的参数: public open fun launch(p0: Class!, vararg p1: String!): Unit defined in javafx.application.Application public open fun launch(vararg p0: String!): javafx.application.Application中定义的单位

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

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

【问题讨论】:

标签: javafx kotlin desktop


【解决方案1】:

你需要使用扩展运算符

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

【讨论】:

  • 谢谢!有用。我还需要在我的“main”方法中添加一个“companion object”块。 companion object { @JvmStatic fun main(args: Array&lt;String&gt;) { launch(Starter::class.java, *args) } }
  • 您不需要伴随对象。只需按照上图所示操作即可。
  • 只是不要把main函数放在类里面,把它放在外面。
猜你喜欢
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 2018-10-30
  • 2018-06-29
  • 2022-06-11
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多