第一件事,自然是下载Kotlin的编辑器——Kotlin-compiler,这个编辑器可以在GitHub上搜到,
https://github.com/JetBrains/kotlin/releases/tag/v1.2.41(我目前在用1.2.41版)
或者https://github.com/JetBrains/kotlin/releases/tag/v1.2.50(目前最新版)
然后非常重要的一件事:把Kotlin-compiler的bin目录加入到环境变量中,这个非常重要!!如果不加入,用kotlin.bat的完成路径会让-classpath失效,从而找不到依赖的jar和.class文件!!这个坑很深!!例如我的路径为:D:\1_Software\kotlin-compiler-1.2.41\kotlinc\bin使用Kotlin代码,调用dos命令,使用kotlinc.bat编译kotlin的源代码.kt文件
val runtime = Runtime.getRuntime()
val process = runtime.exec("kotlin.bat -cp(-classpath) ${.class文件依赖路径(不是文件,而是文件夹路径,多个依赖中间用分号;隔开),如果是jar包,请将jar的完整路径填上包括*.jar} ${要编译的.kt源文件路完整路径(不是文件夹路径)} -d ${编译完成后.class文件的输出路径}")
执行的时候需要输出log信息,这个dos后台输出命令必须用缓存来实现,即用BufferedImportStream,不然直接输出,什么都输出不了。
printMessage(process.inputStream)
printMessage(process.errorStream)
fun printMessage(inputStream: InputStream?) {
val bufferedInputStream = BufferedInputStream(inputStream)
val byteArray = ByteArray(2048)
while (true) {
val read = bufferedInputStream.read(byteArray)
if (read == -1) break
val string = String(byteArray)
println(string)
}
bufferedInputStream.close()
}
其实可以看出来kotlinc除了有个坑以外,其他和javac几乎是一样用的,没有什么区别。