java - 在 Java 文件名字符串中使用 "file:"前缀作为文件路径?

标签 java eclipse javafx

获取 Java 项目的资源一直让我感到相当困惑,因为在我看来,文档并没有很好地解释它,而且每次我需要在项目中使用它时,我最终都必须重新学习它。最近,我尝试使用 JavaFX 加载图像。构造函数需要一个表示文件路径的字符串。我过去想出了一个非常hacky的方法来做到这一点,但我最近遇到了this StackOverflow 帖子和接受的答案显示了引用 Eclipse 项目顶层的非常简单的方法,以便我可以访问构建路径中的源文件夹并轻松找到我的图像文件。

这个特定的分隔符有名称吗?还有其他类似的分隔符吗?在可执行 JAR 中运行此代码时使用此表示法会出现问题吗?

任何信息将不胜感激。如果这不是解决这个问题的最佳方法,并且有人可以给我一个充分、简单的解释,说明将来如何做到这一点,或者提供一个很好解释它的文章的链接,那就太好了。

最佳答案

您可以使用相对路径或绝对路径获取资源。相对路径从“工作目录”开始,这是应用程序运行的目录。绝对路径是明确的。在类路径之前检查工作目录。这就是在诸如

之类的地方使用的
new File(filepath).

当你运行Java时,还需要考虑类路径。有些人寻找资源的另一种方式是

ClassLoader.getResource(String)

ClassLoader.getResourceAsStream(String)  

类加载器可以接受字符串作为相对路径,并将检查类路径中的每个位置。 https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String)

人们通过将文件放在 src 文件夹中来获取结果,因为它通常会被复制到生成类文件的位置,该文​​件包含在类路径中。 您所说的“顶层”是工作目录。 Eclipse 默认将工作目录设置为项目根目录。

关于java - 在 Java 文件名字符串中使用 "file:"前缀作为文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44837146/

相关文章:

java - 空对象引用工具栏android

java - 使用 Maven 从 @Category 运行测试

java - 单击下拉按钮后,如何清除组合框中选择的默认值?

eclipse - 安装 tomcat 7 时 ZLIB 输入流意外结束

java - src 文件夹导致 Eclipse 中的包声明错误

循环中的 Java 音频文件。不是作为小程序。

java - 带有子字符串的 if else 语句

javafx packager 在 Windows 上一个接一个地安装应用程序

JavaFX SplitPane 不工作

Command+T 的 JavaFX 组合键(新标签)