我正在尝试通过bash执行命令,例如konanc
。
在KotlinJVM中,这将仅使用Runtime.getRuntime().exec("...")
或使用Process
创建ProcessBuilder
,但是,这些类在Kotlin-Native中均不可用,因为它们是Java库。
我尝试在文档和本地kotlin GitHub存储库中搜索示例代码,但未找到任何内容。
答案 0 :(得分:1)
tl; dr不,没有针对Kotlin本机的标准处理api
好吧,原生的kotlin std仍在开发中,我认为进程api不会很快出现。
但是,您可以将互操作性与某些C进程库(例如https://github.com/eidheim/tiny-process-library
)一起使用方法指南https://github.com/JetBrains/kotlin-native/blob/master/INTEROP.md
但是,您也可以使用POSIX的exec / fork调用来生成和创建新进程,我认为kotlin-native确实包括适用于Linux / windows的POSIX。 https://github.com/JetBrains/kotlin-native/tree/master/platformLibs/src/platform有关平台,请参见posix.def。
示例:
import platform.posix.*
fun main(arguments: Array<String>) {
println("${arguments[0]}")
execlp("touch", "touch", "${arguments[0]}")
}
使用./file <name>
调用它将在当前目录中创建一个以参数name
命名的文件。