使用;档案:";Java文件名字符串中文件路径的前缀?

使用;档案:";Java文件名字符串中文件路径的前缀?,java,eclipse,javafx,Java,Eclipse,Javafx,获取Java项目的资源对我来说总是相当混乱,因为在我看来,文档并没有很好地解释它,每次我需要在项目中使用它时,我都不得不重新学习它。最近,我使用JavaFX尝试加载一个图像。构造函数需要一个表示文件路径的字符串。在过去,我曾提出过一种非常粗糙的方法来实现这一点,但最近我遇到了StackOverflow post,而公认的答案显示了一种非常简单的方法来引用Eclipse项目的顶层,这样我就可以访问构建路径中的源文件夹并轻松找到我的图像文件 这个特殊的delimeter有名字吗?还有其他类似的纤度计

获取Java项目的资源对我来说总是相当混乱,因为在我看来,文档并没有很好地解释它,每次我需要在项目中使用它时,我都不得不重新学习它。最近,我使用JavaFX尝试加载一个图像。构造函数需要一个表示文件路径的字符串。在过去,我曾提出过一种非常粗糙的方法来实现这一点,但最近我遇到了StackOverflow post,而公认的答案显示了一种非常简单的方法来引用Eclipse项目的顶层,这样我就可以访问构建路径中的源文件夹并轻松找到我的图像文件

这个特殊的delimeter有名字吗?还有其他类似的纤度计吗?在可执行JAR中运行此代码时,使用此符号会有问题吗

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

很好地涵盖了
文件:
方案

但我们生活在一个混乱的世界,各种软件可能符合旧标准,或者不完全符合任何标准,或者可能包括对替代语法的支持。不幸的是,理解用于特定软件系统的正确语法并不总是很简单。

很好地涵盖了
文件:
方案


但我们生活在一个混乱的世界,各种软件可能符合旧标准,或者不完全符合任何标准,或者可能包括对替代语法的支持。不幸的是,理解用于特定软件系统的正确语法并不总是很简单。

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

new File(filepath).

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

ClassLoader.getResource(String)

类加载器可以接受字符串作为相对路径,并将检查类路径上的每个位置。

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

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

new File(filepath).

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

ClassLoader.getResource(String)

类加载器可以接受字符串作为相对路径,并将检查类路径上的每个位置。

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

但在本例中,路径没有解析为C:\drive。它引用了项目根目录(Eclipse项目中src文件夹的父目录)。因此,使用“file:res/images/etc.png”以及与src文件夹位于同一目录中的“res”文件夹,它将从res文件夹获取图像。或者我不理解Wiki条目?实际上,它并不是指“项目根”——它指的是“进程的当前目录”——而您的IDE恰好将当前目录设置为项目根。但是当你在另一个目录中手动启动应用程序时,没有这样的保证。所以这对于一个可执行的JAR来说是一个坏主意,那么?我说的是一般使用“文件:”模式。但是,对于相对路径URI,您使用的任何软件都不总是支持相对路径URI,或者如果支持相对路径URI,“基本路径”可能不是“明显的”路径。再说一次,我说的是一般情况。但在本例中,路径没有解析为C:\驱动器。它引用了项目根目录(Eclipse项目中src文件夹的父目录)。因此,使用“file:res/images/etc.png”以及与src文件夹位于同一目录中的“res”文件夹,它将从res文件夹获取图像。或者我不理解Wiki条目?实际上,它并不是指“项目根”——它指的是“进程的当前目录”——而您的IDE恰好将当前目录设置为项目根。但是当你在另一个目录中手动启动应用程序时,没有这样的保证。所以这对于一个可执行的JAR来说是一个坏主意,那么?我说的是一般使用“文件:”模式。但是,对于相对路径URI,您使用的任何软件都不总是支持相对路径URI,或者如果支持相对路径URI,“基本路径”可能不是“明显的”路径。再一次,我说的是一般性的。你说的“这个特定的delimeter”是什么意思?我想他指的是“file:”正确,@ProgrammersBlock你说的“这个特定的delimeter”是什么意思?我想他指的是“file:”正确,@ProgrammersBlock