2017-06-19 205 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'编译它 –