有没有一种方法让java程序确定它在文件系统中的位置?在java中获取文件路径
8
A
回答
11
您可以使用CodeSource#getLocation()
。 CodeSource
可通过ProtectionDomain#getCodeSource()
获得。 ProtectionDomain
又可通过Class#getProtectionDomain()
获得。
URL location = getClass().getProtectionDomain().getCodeSource().getLocation();
File file = new File(location.getPath());
// ...
这将返回Class
问题的确切位置。
更新:根据评论,它显然已经在类路径中。然后您可以使用ClassLoader#getResource()
,其中您传递了根目录相对路径。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL resource = classLoader.getResource("filename.ext");
File file = new File(resource.getPath());
// ...
你甚至可以把它作为使用ClassLoader#getResourceAsStream()
的InputStream
。
InputStream input = classLoader.getResourceAsStream("filename.ext");
// ...
这也是使用打包资源的正常方式。如果它位于包装内,则改为使用com/example/filename.ext
。
-1
0
对于我这个工作,当我知道什么是该文件的确切名称:
File f = new File("OutFile.txt");
System.out.println("f.getAbsolutePath() = " + f.getAbsolutePath());
或者有这个解决方案太:http://docs.oracle.com/javase/tutorial/essential/io/find.html
相关问题
- 1. java获取文件路径
- 2. 在java中获取文件的路径
- 3. Java属性,获取文件路径
- 4. Java - 从文件路径获取映像
- 5. Java - 获取“程序文件”路径
- 6. 在c中获取文件路径#
- 7. 在Python中获取文件路径2.7
- 8. 获取文件的路径
- 9. asp:FileUpload获取文件路径
- 10. html5获取文件路径
- 11. Symfony获取文件路径
- 12. 在Python中获取绝对文件路径的目录路径
- 13. 获取资产路径在文件中读取多个文件
- 14. 获取文件路径的文件名
- 15. 从文件路径获取文件名
- 16. 从文件路径获取文件目录路径
- 17. 从php中获取文件路径?
- 18. Java获取当前路径
- 19. 如何获取文件路径到表java java
- 20. 在Java中获取文件路径时发生java.lang.NullPointerException(通过jar文件执行)
- 21. 获取正在运行的java文件的当前路径
- 22. 获取Java中隐藏文件夹的绝对路径
- 23. 在MVC 3中获取上传文件的文件路径
- 24. 在Centennial应用程序中获取文件的文件路径
- 25. 如何在js文件中获取文件夹“node_modules”的路径?
- 26. 获取包含在项目中的文件的文件路径
- 27. 在FineUploader中获取上传文件的文件路径
- 28. 在PHP中浏览文件并获取文件路径
- 29. 如何在Eclipse插件中获取IJavaProject的类路径作为文件路径?
- 30. 读取文件方向/路径Java
+1,但注意p rotectionDomain.getCodeSource()和CodeSource.getLocation()都可以为null。 – 2010-05-26 18:22:28
@bkail:当它使用设计不佳的本土类加载器加载时,或者从某个外部流源加载时,它确实可能会返回null。但是,这通常不适用于具有'main() '。 – BalusC 2010-05-26 18:26:44
这绝对是做这份工作 - 但它看起来不太好。我需要做的是加载一个配置文件,它需要与我的jar文件在同一个文件夹中,但可以从任何位置运行。这是获取文件位置信息的正确方法吗? – markovuksanovic 2010-05-26 21:34:02