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