测试运行简单Kotlin程序无打印输出的原因排查

Kotlin程序运行后控制台无打印输出,常见原因及排查方向如下:
- 入口函数不符合规范
Kotlin JVM程序的执行入口是顶层声明的无参main函数(Kotlin 1.3+也支持带Array<String>参数的main作为入口)。如果把main函数写在类内部、函数名拼写错误(比如拼为mian)、加了不支持的额外参数,程序不会执行你写的逻辑,自然没有输出。
错误写法示例:
正确入口写法:// 错误:main定义在类内部,不会被识别为程序入口 class Demo { fun main() { println("测试输出") } }// 顶层定义,不在任何类内部 fun main() { println("测试输出") } - 运行配置选择错误
IDE运行按钮对应的配置如果指向了其他文件、空的遗留配置,实际执行的不是你当前写了打印逻辑的代码。可以查看IDE顶部运行配置栏,确认选中项对应你当前编辑的Kotlin文件,重新选择文件对应的main函数配置后再运行。 - 打印代码未被执行
如果打印语句写在未命中的条件分支内、代码在打印语句前就被return截断、打印语句被注释,程序执行路径根本没有走到打印逻辑,就不会有输出。可以在main函数最开头加一句println("启动测试")运行,如果这句能正常输出,就说明是后续业务逻辑分支没有走到你写打印的位置。 - 控制台输出被拦截
检查IDE控制台的过滤规则,是否开启了关键字过滤、日志级别过滤把普通打印内容筛掉了;如果是命令行运行,检查是否配置了标准输出重定向(比如加了> log.txt类的启动参数),导致输出内容被写入文件而非当前控制台。 - 构建/环境异常
如果项目的JDK、Kotlin插件配置有误,或者构建阶段就报错失败,代码根本没有被编译执行,控制台也不会出现代码里的打印内容,这种情况可以查看IDE的Build输出面板,会有对应的构建报错提示。
内容的提问来源于stack exchange,提问作者overcode
相关产品推荐
相关产品推荐

