java - 使用路径对象动态使用 Maven 和 getResources?
问题描述
我有一个 Netbeans maven 项目,并且正在使用该src/main/resources
文件夹来部署我的图片和一个帮助文件以及我正在编写的程序。
根据我对该主题的理解,此文件夹中的任何文件(以及包含它们的包)都归档在.jar
Netbeans IDE 生成的生成文件中。我已经通过在压缩文件提取程序中打开 jar 来验证这一点。
这便于部署,之前我遇到了版本控制问题,有些图片已经过时,因为我之前使用磁盘上的文件夹来存放图片文件夹。
我有一个从图片文件夹中选择随机图片的子例程,但是在 jar 文件中实现它与我对主题的理解相冲突。
如果图片文件夹现在在 jar 存档中,我怎样才能获取Path
这些文件的对象?我很清楚我可以Clazz.class.getResource("/pictures")
用来获取文件夹的 URL 对象。我还可以将此 URL 转换为 URI 并将其提供给File
构造函数并用于getPath
获取磁盘上此文件夹的路径。
然后我可以打电话Files.list(picturesPath)
;获取路径列表并选择一个随机路径。
如果文件/文件夹只是磁盘上的常规文件/文件夹,则此过程可以正常工作,但它们不是,它们位于压缩的 jar 存档中。这让我很困惑。
我可以将这些我返回Path
的文件夹视为典型文件夹并以我执行常规文件夹的典型方式操作它们吗?是否有技术巫术在起作用以使这种无缝衔接,或者我的假设中有一些微妙的谬误会阻止我使用类似的东西Files.list(picturesPath)
?
解决方案
推荐阅读
- amazon-dynamodb - 如何在 DynamoDB 中创建良好的主键
- openlayers-5 - 从 turf.js MultiPolygon 创建 OpenLayers 5 MultiPolygon 功能
- python - 高效的叠瓦算法
- vue-cli - (Nuxt)npm run dev 有错误,node_modules 错误
- oop - Robert Martin 所说的“只有函数从早期的编程时代存活下来,而不是例行公事”是什么意思?
- android - 我正在尝试在微调器中获取 Json 数据,但每次都失败
- php - 错误 php 7.1 -> 7.2 :count(): 参数必须是一个数组或一个在具体 5 插件中实现 Countable 的对象
- python - 如何运行 BST 树函数的高度
- ios - 在 NativeScript 中使用 NSURLIsExcludedFromBackupKey
- javafx - 使用大型图形节点 (TornadoFX/JavaFX) 时 TreeView 滚动跳转