我知道我可以使用以下命令从src/test/resources加载文件:
getClass().getResource("somefile").getFile()
但是,我如何才能获得src//目录的完整路径,也就是说,我不想加载文件,我只想知道该目录的路径?
发布于 2015-02-23 20:50:11
尝试使用ClassLoader
类:
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("somefile").getFile());
System.out.println(file.getAbsolutePath());
ClassLoader
负责在类中加载。每个类都有一个对ClassLoader
的引用。这段代码从资源目录返回一个File
。对它调用getAbsolutePath()
将返回它的绝对Path
。
ClassLoader
的Javadoc:http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html
发布于 2015-02-23 21:05:57
你不需要和类加载器打交道。实际上,这是一个不好的习惯,因为当类加载器资源在jar归档中时,它们是而不是 java.io.File对象。
File resourcesDirectory = new File("src/test/resources");
如果您确实需要的话,resourcesDirectory.getAbsolutePath()
将返回正确的值。
这让你清楚地知道你在做什么。
发布于 2017-02-22 02:53:51
https://stackoverflow.com/questions/28673651
复制相似问题