2014-09-24 84 views
2

在我和Kotlin一起玩时,我想知道是否可以为在Kotlin中编写的JavaFX应用程序生成jar。所以我写了一个简单的应用程序,它在IntelliJ IDEA上工作,但是当我决定生成它从未工作的jar时!它说它无法找到或加载主类。在Kotlin中为JavaFX项目生成jar

我想问题是,当它在项目设置中询问主类时,我输入了应用程序类名称(它不包含main方法,因为它必须位于包级别),而在纯Java我可以把主要的方法放在应用程序类中,它可以很好地工作。那么我该如何解决这个问题呢?

编辑:只是试图将目标从JavaFX应用程序更改为一个正常的罐子,它的工作。不知道为什么它不适用于JavaFX应用程序目标。

回答

1

如果在包中定义的主要功能命名为foo.bar

package foo.bar 

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

然后,你的主类是foo.bar.BarPackage - 它是由科特林编译器生成举行封装的顶级功能

+0

时我试过这样做,它引发了一个异常:最终可执行文件中的'java.lang.NoClassDefFoundError'。 – 2014-09-24 15:46:42

+0

在当前的Kotlin中,这不再是如何命名顶级功能的。包含该函数的文件的名称(例如,包含'main()'的'App.kt'包含'foo.bar')将在名为'foo.bar.AppKT'的类中生成可更改的main使用文件级注释'@file:JvmName(“SomeOtherName”)' – 2015-12-30 22:15:15