gpt4 book ai didi

java - 没有从资源中获取绝对文件路径

转载 作者:行者123 更新时间:2023-11-30 08:24:57 25 4
gpt4 key购买 nike

我在/src/main/resources 下有一个模板文件,我想得到它的绝对路径,问题是我得到的是相对路径而不是绝对路径。

在项目中加载模板后,我需要在我的计算机中获取文件的绝对路径。我现在正在做的是:

URL location = this.getClass().getResource("/template/template2.vm"); 
String fullPath = location.getPath();

返回: (java.lang.String) vfs:/content/MyProyect-1.0.0-SNAPSHOT.war/WEB-INF/classes/templates/template2.vm

如果您在 Eclipse 中执行此操作,它会提供完整路径,但在没有 IDE 的情况下在 Netbeans 中部署会返回此结果。我正在使用 jboss 进行部署。

我也试过

String fullPath = location.getAbsolutePath();

我不断得到这个结果。

最佳答案

如前所述,JBoss 使用虚拟文件系统 (VFS)。您可以使用 jboss 特定库 jboss-vfs 获取文件的绝对路径。

  URL rootUrl = classLoader.getResource(path);
VirtualFile jbossVirtualFile = (VirtualFile) rootUrl.getContent();
File fileSystemFile = jbossVirtualFile.getPhysicalFile();
String absolutePathToFile = fileSystemFile.getPath();

我在这里使用 jboss-vfs 3.2.4.Final。

或者,如果您需要读取文件而不关心路径使用

  classLoader.getResourceAsStream(path) 

(这不适用于目录。)

关于java - 没有从资源中获取绝对文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22567174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com