尝试最简单的kotlin hello world:
thufir@dur:~/kotlin$
thufir@dur:~/kotlin$ ll
total 32
drwxr-xr-x 2 thufir thufir 4096 Oct 27 07:28 ./
drwx------ 46 thufir thufir 16384 Oct 27 06:47 ../
-rw-r--r-- 1 thufir thufir 104 Oct 27 07:27 Hello.kt
thufir@dur:~/kotlin$
thufir@dur:~/kotlin$ kotlinc Hello.kt
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.text.StringFactory to constructor java.lang.String(char[],boolean)
WARNING: Please consider reporting this to the maintainers of com.intellij.util.text.StringFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
thufir@dur:~/kotlin$
thufir@dur:~/kotlin$ kotlin Hello.class
error: could not find or load main class Hello.class
thufir@dur:~/kotlin$
thufir@dur:~/kotlin$ cat Hello.kt
class Hello {
fun main(args: Array<String>) {
println("Hello, world!" + args[0])
}
}
thufir@dur:~/kotlin$
thufir@dur:~/kotlin$ kotlinc -version
info: kotlinc-jvm 1.1.51 (JRE 9.0.0.15+181)
thufir@dur:~/kotlin$
如何从CLI运行它?
期望的输出:
thufir@dur:~/kotlin$
thufir@dur:~/kotlin$ kotlinc
Welcome to Kotlin version 1.1.51 (JRE 9.0.0.15+181)
Type :help for help, :quit for quit
>>>
>>> println("hello world");
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.text.StringFactory to constructor java.lang.String(char[],boolean)
WARNING: Please consider reporting this to the maintainers of com.intellij.util.text.StringFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
hello world
>>>
>>> :quit
thufir@dur:~/kotlin$
答案 0 :(得分:3)
首先,Hello
可能无法正常工作,因为main
函数不是静态的。在Kotlin中,您不需要一个类来定义main
方法。只需使用功能:
fun main(args: Array<String>) {
println("Hello, world!" + args[0])
}
然后,在编译之后,你不应该像kotlin <File>.class
那样称呼它,而只是kotlin <File>
,.class
后缀是多余的:
$ ./compiler/kotlinc/bin/kotlin HelloKt test
Hello, world!test