kotlin调用终端命令
2021/12/15 6:23:12
本文主要是介绍kotlin调用终端命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
/** * 调用系统命令行中的命令.以List<String>的方式输入命令的各个参数. * 命令执行完毕后会以String?传回结果,不会在终端显示 * 默认在当前目录中执行,超时时间为60秒 */ fun runCommand( cmd: List<String>, workingDir: File = File("."), timeoutAmount: Long = 60L, timeUnit: TimeUnit = TimeUnit.SECONDS ): String? = runCatching { ProcessBuilder(cmd) .directory(workingDir) .redirectErrorStream(true) .start().also { it.waitFor(timeoutAmount, timeUnit) } // jdk17之后这样写 .inputReader().readText() // jdk17之前这样写 // .inputStream.bufferedReader().readText() }.onFailure { it.printStackTrace() }.getOrNull() /** * 调用系统命令行中的命令.以List<String>的方式输入命令的各个参数. * 命令执行完毕后会以String?传回结果,不会在终端显示 * 在当前目录中执行,超时时间为60秒. * 若要更改目录和时间,请使用List<String>的方式传入 */ fun runCommand(vararg cmd: String): String? = runCommand(listOf(*cmd)) //不推荐这样使用,程序遇到错误会直接退出. fun String.runCommand(): String = Runtime.getRuntime().exec(this).inputStream.bufferedReader().readText()
这篇关于kotlin调用终端命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-06Kotlin委托属性(1)
- 2023-06-15Kotlin协程-那些理不清乱不明的关系
- 2023-06-08[Kotlin Tutorials 21] 协程的取消
- 2023-05-26Kotlin难点
- 2023-02-23【备战春招】第16天 Kotlin实用技巧
- 2023-02-23【备战春招】第15天 Kotlin扩展Extensions技术探秘
- 2023-02-22【备战春招】第14天 深入理解Kotlin注解
- 2023-02-21【备战春招】第12天 深入理解Kotlin类与接口
- 2023-02-21【备战春招】第13天 深入理解Kotlin泛型
- 2023-02-18【备战春招】第10天 Kotlin方法与Lambda表达式