Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
kotlin的Javafx在我将其导出到runnable jar时出错了_Java_Intellij Idea_Javafx_Jar_Kotlin - Fatal编程技术网

kotlin的Javafx在我将其导出到runnable jar时出错了

kotlin的Javafx在我将其导出到runnable jar时出错了,java,intellij-idea,javafx,jar,kotlin,Java,Intellij Idea,Javafx,Jar,Kotlin,我尝试使用kotlin编写javafx应用程序。在我将其导出到runnable jar之后,我双击jar文件,但它不起作用。但是如果我使用Java,一切都可以 例如:通过IDEA 2017.2.5创建一个新的javafx项目。选择文件项目结构,然后单击javafx选项卡,本机捆绑选择全部。然后应用设置。 然后选择构建工件构建。 我能开,一切都好。 但当我使用kotlin并做与java相同的事情时。 当我在IDEA中运行它时,一切正常 代码: 包示例 导入javafx.application

我尝试使用kotlin编写javafx应用程序。在我将其导出到runnable jar之后,我双击jar文件,但它不起作用。但是如果我使用Java,一切都可以

例如:通过IDEA 2017.2.5创建一个新的javafx项目。选择文件项目结构,然后单击javafx选项卡,本机捆绑选择全部。然后应用设置。

然后选择构建工件构建。

我能开,一切都好。

但当我使用kotlin并做与java相同的事情时。 当我在IDEA中运行它时,一切正常

代码:

包示例
导入javafx.application.application
导入javafx.fxml.fxmloader
导入javafx.scene.Parent
导入javafx.scene.scene
导入javafx.stage.stage
类Main:Application(){
@抛出(异常::类)
覆盖乐趣开始(初级阶段:阶段){
val root=fxmloader.load(javaClass.getResource(“sample.fxml”))
primaryStage.title=“你好,世界”
primaryStage.scene=场景(根,300.0,275.0)
primaryStage.show()
}
伴星{
@JvmStatic
趣味主线(args:Array){
launch(Main::class.java)
}
}
}

我双击了它,但什么也没发生。怎么了?

当您作为jar运行时,类加载器的行为不同。(目录级)而不是使用FXMLLoader。请改为尝试从路径加载。。。。javaClass.getResource(“/”).toURI().resolve(“sample.fxml”).getPath();请不要重复你的问题。删除或编辑上一个。
package sample

import javafx.application.Application
import javafx.fxml.FXMLLoader
import javafx.scene.Parent
import javafx.scene.Scene
import javafx.stage.Stage

class Main : Application() {

    @Throws(Exception::class)
    override fun start(primaryStage: Stage) {
        val root = FXMLLoader.load<Parent>(javaClass.getResource("sample.fxml"))
        primaryStage.title = "Hello World"
        primaryStage.scene = Scene(root, 300.0, 275.0)
        primaryStage.show()
    }

    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            Application.launch(Main::class.java)
        }
    }
}