起因
最近在使用Kotlin 编程,使用了历史java代码;在ide中程序可以正常运行,当我使用 gradle 构建后,利用 java -jar 命令启动时,找不到class文件。
探因
ide能运行,jar不能正常运行肯定是构建过程中的问题了。打开 kotlin.jar 文件后,发现里面的确没有由 java 文件生成的 .class 文件。
在网上一番查看,发现kotine项目 src的目录这样划分的 src/main/java,src/main/kotlin,src/main/resources;
结论
所以应该是我的目录划分出现问题了,我使用gradle建立的目录只有 src/main/kotlin,src/main/resources 两个目录,构建时,只会编译 kotlin 文件。
解决方案:
- 将kotlin 目录更名为 java目录;
- 新建一个java目录,将java文件移动到 src/main/java 下的相应子目录中
总结
之所以会出现这个问题,应该是很正常的。kotlin 作为java系的新语言,肯定不想背负java的包袱,但又想持有java目前的优势。所以src/main/kotlin 目录下只存放 kotlin 文件,java文件存放到 src/main/java ;如果嫌麻烦,那就同一存放到 src/main/java 中。
记录一下~~