maven工程中的各种路径获取

需求

新建maven工程, 如下图所示,现在想在BatchJob类中读取resources资源路径下data目录下的wc文件,代码该如何编写呢

获取路径代码

1 通过BatchJob类class本身

 val path2 = this.getClass.getResource("").getPath
 val path3 = this.getClass.getResource("/").getPath

结果

path2=/D:/programs/flink/target/classes/com/dh/flink/
path3=/D:/programs/flink/target/classes/

由结果可知,class获取到的相对路径是类class本身所在的包目录路径, 绝对根路径"/" 则获取的是classes目录的根路径

2 通过class的类加载器

val path4 = this.getClass.getClassLoader.getResource("").getPath
val path5 = this.getClass.getClassLoader.getResource("/").getPath

结果

path4=/D:/programs/flink/target/classes/
Exception in thread "main" java.lang.NullPointerException
	at com.dh.flink.BatchJob$.main(BatchJob.scala:51)
	at com.dh.flink.BatchJob.main(BatchJob.scala)

由结果可知, class 加载器获取的相对路径是classes目录的根路径,绝对根路径"/" 则获取到的为空,或者不存在

猜你喜欢

转载自blog.csdn.net/dinghua_xuexi/article/details/107600488
今日推荐