Windows系统下如何编译并运行包含协程的Kotlin代码
错误原因
你遇到的报错是运行命令的写法错误导致的,核心问题有两个:
-jar和-cp参数无法同时生效:使用-jar参数运行jar包时,JVM只会读取jar包内META-INF/MANIFEST.MF文件里的Class-Path和Main-Class配置,手动指定的-cp参数会被直接忽略。- 类路径指定逻辑错误:第二种写法中
-cp参数只包含了协程依赖,没有把你自己编译的CoMain01.jar加入类路径,且命令最后需要指定主类的全类名,你直接填写jar包文件名,JVM会把它当成类名加载,自然触发类找不到的报错。
解决方案
Kotlin编译无包名的kt文件时,顶层main函数对应的主类名为文件名Kt,你的文件名为CoMain01.kt,对应的主类名为CoMain01Kt,你可以选择以下任意一种方式运行:
方案1:直接通过类路径指定主类运行
Windows下类路径用分号;分隔,把协程依赖和你编译的jar包都加入类路径,最后跟主类名即可,命令如下:
java -cp "C:\kotlin\lib\kotlinx-coroutines-core-jvm.jar;CoMain01.jar" CoMain01Kt
方案2:配置清单文件后用-jar直接运行
如果想要直接用java -jar命令运行,需要提前在编译时配置清单文件:
- 新建
manifest.txt文件,写入如下内容,注意末尾要保留一个空行:
Main-Class: CoMain01Kt Class-Path: C:\kotlin\lib\kotlinx-coroutines-core-jvm.jar
- 重新执行编译命令,指定清单文件:
kotlinc CoMain01.kt -cp C:\kotlin\lib\kotlinx-coroutines-core-jvm.jar -include-runtime -d CoMain01.jar -manifest manifest.txt
- 编译完成后直接运行即可:
java -jar CoMain01.jar
内容的提问来源于stack exchange,提问作者anta40
相关产品推荐
相关产品推荐

