【发布时间】:2022-12-11 15:56:11
【问题描述】:
在 intelliJ 项目中,导入了“otherModule”。
一个模块中的“Main 方法”调用位于“otherModule”中的“某些方法”
“otherModule”包含资源,调用模块需要获取路径。
什么代码可以用来获取“otherModule”的路径,而不是返回调用模块的路径?
例如,如果“otherModule”包含代码: var thisModulePath = getClass.getResource("/").getPath
它实际上返回调用模块的路径。
【问题讨论】:
-
使用
getResources,就像获取列表一样。你将在构建工具、超级 JAR 和 dockerized 应用程序中有不同的类路径,所以最好不要让你的代码依赖于它是如何组织到文件夹/JAR 中的。 -
您真的需要资源路径吗?否则
getResourceAsStream可能更合适,这样您就不必关心路径。如上所述,根据您的代码运行方式,路径可能会非常不同,因此取决于您对路径所做的操作,它不能是可移植代码。 -
getResources 或 getResourceAsStream 肯定只会在原始模块中找到资源吗?与被调用模块中存在的资源无关?
标签: scala