我正在尝试使用以下命令执行我的 Kotlin 类:
./gradlew -q run < src/main/kotlin/samples/input.txt
这是我的HelloWorld.kt类:
package samples
fun main(args: Array<String>) {
println("Hello, world!")
val lineRead = readLine()
println(lineRead)
}
这是我的build.gradle.kts:
plugins {
kotlin("jvm")
application
}
application {
mainClassName = "samples.HelloWorldKt"
}
dependencies {
compile(kotlin("stdlib"))
}
repositories {
jcenter()
}
代码会执行,但不会显示 input.txt 文件中包含的数据。这是我得到的输出:
Hello, world!
null
我希望能够执行上面的 gradlew 命令,并将 input.txt 流重定向到 stdio。我可以在 C++ 中轻松做到这一点。编译 .cpp 文件后,我可以运行:
./my_code < input.txt
它按预期执行。
如何使用 Kotlin 和 Gradle 实现相同的目标?
更新:基于此答案,我尝试将其添加到 build.gradle.kts 但它不是有效的语法: