开发者社区> 问答> 正文

在JAVA中从JAR运行时,如何获取定位文件的文件路径?

我的项目具有以下结构:src / test / resources / utility / configuration.xml

我正在尝试使用ClassLoader获取系统中的文件位置

public File getFileFromResources(String fileName){

        ClassLoader classLoader = getClass().getClassLoader();

        URL resource = classLoader.getResource(fileName);
        if(resource == null){
            throw new IllegalArgumentException("file not found");
        }else{
            return new File(resource.getFile());
        }

调用方式:

文件file = getFileFromResources(“ Utility / ConfigurationXML.xml”); strFilePath = file.getAbsolutePath();

这给了我该文件的绝对路径,该文件位于目标文件夹中。

上面的代码在Eclipse IDE中工作正常,但是当我创建项目JAR时,getFileFromResources()返回了我

文件:/ C:/Users/UserName/Desktop/ExecutableJAR/TestJAR-tests.jar!/Utility/ConfigurationXML.xml

我正在使用Maven构建我的项目。

展开
收起
垚tutu 2019-12-04 16:28:33 1390 0
1 条回答
写回答
取消 提交回答
  • #include

    正如您的路径所示,重新购买是您测试资源的一部分。生产代码无法访问测试资源(而测试代码可以访问生产资源)。如果您在生产中需要此特定资源,则需要将其移至生产资源文件夹层次结构(通常为)js src/main/resources/utility/configuration.xml 。

    2019-12-04 16:28:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载