我知道我可以从src/test/resources加载一个文件:
getClass().getResource("somefile").getFile()
但是如何获得src/test/resources目录的完整路径,即我不想加载一个文件,我只想知道目录的路径?
我将简单地使用Java 7中的path
Path resourceDirectory = Paths.get("src","test","resources");
整洁干净!
你不需要搞乱类加载器。事实上,这是一个坏习惯,因为类加载器资源在jar存档中时不是java.io.file对象。
Maven在运行测试之前会自动设置当前的工作目录,因此您只需使用:
File resourcesDirectory = new File("src/test/resources");
resourcesdirectory.getAbsolutePath()
将返回正确的值,如果这是您真正需要的值。
如果希望测试通过文件系统访问数据,我建议创建src/test/data
目录。这说明你在做什么。
尝试使用ClassLoader
类:
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("somefile").getFile());
System.out.println(file.getAbsolutePath());
一个类加载器
负责在类中加载。每个类都有对classloader
的引用。此代码从资源目录返回一个文件
。对其调用getAbsolutePath()
将返回其绝对路径
。
用于类加载器
的Javadoc:http://docs.oracle.com/javase/7/docs/api/java/lang/classloader.html
我有两个包含java代码和资源的工作目录,一个用于测试,另一个用于生产。 src/main/java src/main/resources src/test/java src/test/resources 当运行我的代码并从FileInputStream读取文件时,如下所示: 只要文件位于项目的根目录中,就可以正常工作。如果我将文件放在资源文件夹中并直接指向它,它也可以工作,如下所示: 有没有办法
我想从maven资源目录(src/main/resources)中读取我的属性文件。属性文件的路径称为: 该文件名为test。财产。我使用了JSF2.2、Eclipse和Java Web项目,webapp在Tomcat7上运行 我在mavenpom.xml文件中写道: 并在我的java文件中写入:Properties prop=new Properties(); 但是它没有找到属性文件。我可以读出
我在论坛上搜索了我的问题的答案,但我找不到。我的问题是: 我有两个项目:项目A和项目B。ProjectB使用ProjectA。在ProjectA中,我有两个文件夹:/src/main/resources和/src/test/resource。在ProjectB中,我运行:mvn clean install。我希望,在测试阶段,ProjectB中的类使用/src/test/resources中的资源
我有一个java,gradle项目。我的少年 选择一些配置 Junit中拾取此文件的代码是 当我奔跑时 这个很好用。Junit能够从csv文件中拾取数据。 当我在Eclipse中运行JUnit时,即通过Shift Alt X T,然后JUnit以空指针异常中断。 我明白原因。当我在eclipse中运行Junit时,它会在同一个文件夹中查找该文件,但没有找到它,因此失败。但是,当我使用gradle运
假设标准maven设置。 在Java中,我如何获得文件的绝对路径?
我有一个目录结构如下的maven模块,我想在中获取的路径 我使用进行了尝试,但它给出了一个空值。 无法获取资源的路径