为什么在 Windows 10 上 java 类文件的路径以斜杠 (/) 开头?

问题描述

我使用 DeviceManager.class.getProtectionDomain().getCodeSource().getLocation().getPath()获取 DeviceManager 类的文件路径,但它输出/C:/Users/gdiaz/repos/devicetalk/build/classes/main/,正如您所看到的,路径以正斜杠 (/) 开头。为什么会发生这种情况,我该如何解决

然后我将该路径与 new JarFile(currentPath) 一起使用,但我得到了 java.io.FileNotFoundException: C:\Users\user\repos\devicetalk\build\classes\main (Access is denied) 但由于路径以 / 开头,因此会引发该异常。

我在 Windows 10 上运行 Intelli J 2020.3。 SKD corretto-1.8.0_275.

解决方法

我不知道为什么,但是以正斜杠 (/) 开头的路径似乎是正常的,并且确实不会引起问题。我以为 FileNotFoundException 是因为路径开头的 / 但事实证明指定的路径不是文件而是目录。愚蠢的错误。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...