2017-06-19 206 views
2

我正在使用IntelliJ Idea來編譯一個簡單的2-file Kotlin項目。我寧願使用命令行來編譯和運行。所以我想看看IDE發佈什麼命令來編譯和運行項目。我會怎麼做?你如何確定IntelliJ Idea發佈的編譯命令?

+0

@tynn的IntelliJ我使用任何默認爲。爲了在命令行編譯,我不會使用Gradle。 – Scooter

+0

@tynn沒有,沒有build.gradle文件。 – Scooter

+0

@tynn IntelliJ允許生成Ant文件:Build-> Generate Ant Build。我不明白裏面的所有內容,但我注意到在任何地方都沒有「kotlinc」。 – Scooter

回答

0

如上所述通過CrazyCoder和as an answer to this question IntelliJ不調用命令行程序來構建應用程序,而是調用編譯器API。

還提到as an answer to this question是IntelliJ IDEA的有辦法將文件導出爲螞蟻工藝的事實:建設 - >生成Ant構建...。可以檢查該輸出文件,或者調用Ant來處理它,以便查看需要運行的命令。

0

不正是你想要的,但一個簡單的方法,讓編譯器命令行我所知道的是運行搖籃與調試日誌級別生成項目的:

./gradlew compileKotlin --debug | grep 'compiler args' 

你會得到這樣的事情此:

14:23:57.754 [DEBUG] [org.gradle.api.Project] [科特林]科特林編譯ARGS:-d C:\ yourProjectPath \建立\科特林類\主-cp -no-stdlib -no-reflect -module C:\ Temp \ kjps1937184266353217163kotlingradlepluginapi.script.xml -module-name kotlin-gr adle-插件-API -jvm目標1.6 -Xadd編譯-內建-Xload-內建從 - 依賴性-language版本1.1 -API版本1.1 -Xcoroutines =警告

+0

感謝您的回覆。我不知道或使用gradle,但是我的系統上已經有了它。然而,沒有gradlew,我看到它被稱爲Gradle Wrapper,並且「如果Gradle項目已經設置了Wrapper(並且我們建議所有項目都這樣做),那麼您可以使用以下命令之一執行構建該項目: 」。我猜IntelliJ Idea並沒有創建一個Gradle項目。 – Scooter

1

如果您打算使用kotlinc編譯你的2個文件,你會做這樣的事情:

example.kt

fun say() { 
    println("hello world") 
} 

main.kt

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

然後執行此操作將您的文件編譯到名爲的目錄中3210:

kotlinc main.kt example.kt -d classes 

這來運行它:

kotlin -classpath classes MainKt 
+0

謝謝!如果沒有將kotlin運行時添加到他們說你需要在他們的kotlinc頁面上執行的編譯命令中,它是如何運行的?我猜「kotlin」包括(而「java」不)? – Scooter

+1

是的,'kotlin'命令在類路徑中使用打包的kotlin-runtime運行它。 'java'命令對Kotlin沒有任何瞭解,因此您必須自己將運行時包含在classpath中,或者使用'-include-runtime'編譯它 –