java - URI 方案不是 "file"。无法从类路径读取文件

标签 java java-io file-handling vfs

我有 Java webapp,我正在尝试从 classpth 读取文件。

 if (fileName == null){
        fileName = Thread.currentThread().getContextClassLoader().getResource("config.properties");
    }
objFile = new File(fileName.toURI());

我的类路径中有 config.properties。 WEB-INF/类。当我在本地检查时,它给出: fileName.toURI(),它给我 file:/D:/dev/Tomcat_6_0/webapps/testApp/WEB-INF/classes/config.properties。并且工作正常。

问题出在生产Linux服务器上,我在那里得到这个路径vfsfile:/export/home/u/bin/jboss-5.1.0.BE/server/default/deploy/testApp.war/WEB-INF/classes/config.properties.

我遇到了以下异常。

Caused by: java.lang.IllegalArgumentException: URI scheme is not "file"
    at java.io.File.<init>(File.java:366)
    at com.utils.ConfigLoader.loadConfigFilePath(ConfigLoader.java:87)

处理 vfs 的解决方法是什么?

最佳答案

您不得尝试将资源从类路径转换为文件。如果它位于 WAR/JAR 中,它甚至可能不是文件。 File 类仅代表文件系统对象。

关于java - URI 方案不是 "file"。无法从类路径读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10429073/

相关文章:

java - 如何将图像(应该是精确大小)写入外部存储

写入文件的 C 代码无法编译

java - 在 Jersey 中使用配置属性

java - 为什么 Double.NaN==Double.NaN 返回 false?

java - "."参数的用途是什么?

java - 在 Java 中读取可能被另一个进程修改的文件

java - 递归查找目录中的所有文本文件

java - 为什么我的系统找不到我的属性文件?

c++ - free() 错误 : invalid size

java - 每个线程一个 Random 实例,由原始 Random 实例播种以获得可重复性