2014-09-24 47 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