java - 如何获取 Java JAR 文件中资源的路径

标签 java resources path

我正在尝试获取资源的路径,但我没有运气。

这有效(在 IDE 和 JAR 中),但这样我无法获得文件的路径,只有文件内容:

ClassLoader classLoader = getClass().getClassLoader();
PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));

如果我这样做:

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("config/netclient.p").getFile());

结果是: java.io.FileNotFoundException: file:/path/to/jarfile/bot.jar!/config/netclient.p(没有这样的文件或目录)

有没有办法获取资源文件的路径?

最佳答案

这是故意的。 "file"的内容可能无法作为文件使用。请记住,您正在处理可能是 JAR 文件或其他类型资源的一部分的类和资源。类加载器不必为资源提供文件句柄,例如 jar 文件可能尚未扩展为文件系统中的单个文件。

如果 java.io.File 是绝对必要的,您可以通过将流复制到一个临时文件并执行相同操作来完成任何通过获取 java.io.File 来完成的操作。

关于java - 如何获取 Java JAR 文件中资源的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/941754/

相关文章:

java - Mongodb + Java 驱动程序。按日期范围搜索

java - 如何更改 JList 中的模型显示

java - 良好的 Java 属性文件编辑器

java - 如何从另一个java应用程序内部启动资源jar - 解决方案

java - 设计随机生成的简单(不相交)曲线

在Mac上读取Excel的Java代码

java - Swing:创建一个以组件为中心显示的 JScrollPane?

java - 当负输入时获取最大值 = 0

android - 为什么我的资源在我的Android项目中突然无法解析?

php - 'Rscript' 不是内部或外部命令,也不是可运行的程序或批处理文件