错误:无法find或加载主类Hello.class

尝试最简单的kotlin你好世界可能:

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) { 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$ 

首先, Hello可能不像你期望的那样工作,因为它的mainfunction不是静态的。 在Kotlin中,你不需要一个类来定义一个main方法。 只需使用函数:

 fun main(args: Array) { println("Hello, world!" + args[0]) } 

然后,在编译之后,你不应该把它kotlin .class ,而只是kotlin 后缀是多余的:

 $ ./compiler/kotlinc/bin/kotlin HelloKt test Hello, world!test