Java 为什么在linux路径中有一个额外的“/。\”?
Windows场景:- 我有一小段代码,可以让我知道目录中某个特定文件夹的位置。代码如下所示:Java 为什么在linux路径中有一个额外的“/。\”?,java,linux,Java,Linux,Windows场景:- 我有一小段代码,可以让我知道目录中某个特定文件夹的位置。代码如下所示: browserPath = this.EnginePath + "\\Chrome_Selenium\\" + "chromedriver.exe"; 这将获得确切的路径:D:\Engine\Test 我尝试使用相同的逻辑来获取linux机器中的路径。 引擎和Chrome驱动程序存储在我的linux机器VM中的路径是 /根/发动机/铬/硒 现在是linux部分:- 我使用下面的一段代码来实现这一点
browserPath = this.EnginePath + "\\Chrome_Selenium\\" + "chromedriver.exe";
这将获得确切的路径:D:\Engine\Test
我尝试使用相同的逻辑来获取linux机器中的路径。
引擎和Chrome驱动程序存储在我的linux机器VM中的路径是
/根/发动机/铬/硒
现在是linux部分:-
我使用下面的一段代码来实现这一点
browserPath = this.EnginePath + "/Chrome_Selenium/" + "chromedriver";
这段代码获取的路径是
/root/Engine/\Chrome\u Selenium\chromedriver
您能帮助我理解为什么路径中会出现/\吗?我猜添加./的原因是因为在linux中,为了在当前工作目录中执行脚本,您需要这样处理:./脚本而不是脚本。即使不需要在其他文件夹中执行,也会以某种方式附加它
至于Alfe提到的主要部分,它一开始并没有什么不同。我建议您不要运行您认为正在运行的代码,但Java文件名中永远不需要使用反斜杠。只需在所有平台上使用/即可。正如@EJP建议使用/As delimter一样,我总是使用/作为路径的分隔符。它可以在所有平台上正常工作,我们在Windows、Unix等平台上都有相同的部署:除了EJP的注释外://路径内的路径与/单独的路径相同,因为。是目录本身。在大多数情况下,我会说:不要想太多。它只是在路径连接起来并且后面的部分以./foo.开头时出现。。要明确它是基于当前工作目录的相对路径。因此,您的路径就是/root/Engine//Chrome\u Selenium/chromedriver,它与/root/Engine/Chrome\u Selenium/chromedriver相同。我不知道bar+/Chrome\u Selenium/+foo如何在\Chrome\u Selenium\后面加上反斜杠。您在问题中粘贴的代码不是正在执行的代码。因此,您的答案基本上由“不知何故”组成?