问题描述
我使用 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
是因为路径开头的 /
但事实证明指定的路径不是文件而是目录。愚蠢的错误。