获取 Java 项目的资源对我来说一直相当混乱,因为在我看来文档并没有很好地解释它,而且每次我需要在项目中使用它时,我最终都不得不重新学习它。最近,使用 JavaFX,我试图加载图像。构造函数需要一个表示文件路径的字符串。过去我想出了一个非常hacky的方法,但我最近遇到了这篇StackOverflow帖子,接受的答案显示了一种非常简单的引用Eclipse项目顶层的方法,以便我可以访问源文件夹在构建路径中并轻松找到我的图像文件。
这个特定的分隔符有名字吗?还有其他类似的分隔符吗?在可执行 JAR 中运行此代码时,使用此表示法会出现问题吗?
任何信息将不胜感激。如果这不是解决这个问题的最佳方法,并且有人可以就将来如何做到这一点给我一个充分、简单的解释,或者提供一个指向解释它的文章的链接,那就太好了。
您可以使用相对路径或绝对路径获取资源。相对路径从“工作目录”开始,这是您的应用程序运行的目录。绝对路径是明确的。在类路径之前检查工作目录。这是在像这样的地方使用的
new File(filepath).
当您运行 Java 时,还需要考虑类路径。有些人寻找资源的另一种方式是
ClassLoader.getResource(String)
和
ClassLoader.getResourceAsStream(String)
ClassLoader 可以接受 String 作为相对路径,并将检查沿类路径的每个位置。https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String)
人们通过将他们的文件放在 src 文件夹中来获得结果,因为这通常会被复制到生成类文件的位置,该位置包含在类路径中。您所说的“顶级”是工作目录。Eclipse 默认将工作目录设置为项目根目录。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句