Java 为什么获取(系统找不到指定的路径)
下面是一些我使用过的代码示例,但无法理解为什么会发生这种情况 不工作代码(1) 工作守则(2) 不工作代码(3)Java 为什么获取(系统找不到指定的路径),java,Java,下面是一些我使用过的代码示例,但无法理解为什么会发生这种情况 不工作代码(1) 工作守则(2) 不工作代码(3) 这和我之前所说的一样简单,因为文件现在就在您要查看的地方 您的工作代码与非工作代码在中完全不等效,并且仍然没有进行任何调试,以查看错误指定的实际路径实际是什么 不要将链式方法调用嵌入到方法中,而是将结果分配给一个引用变量,并对其进行步骤调试,以查看其实际值,而不是您所认为的确定值 至少System.out.println()它们的路径.toabsolutionPath(),您将看到它
这和我之前所说的一样简单,因为文件现在就在您要查看的地方 您的工作代码与非工作代码在中完全不等效,并且仍然没有进行任何调试,以查看错误指定的实际路径实际是什么 不要将链式方法调用嵌入到方法中,而是将结果分配给一个引用变量,并对其进行步骤调试,以查看其实际值,而不是您所认为的确定值 至少
System.out.println()
它们的路径.toabsolutionPath()
,您将看到它们不正确的原因,以及为什么我应该先关闭它
相对目录
表示当前工作目录,不管它是什么
。/…
表示从
images
表示/images
和。/../images
表示从向上移动两个目录,然后使用
/images`
path.get(“.”)。resolve(“test.svg”)
将是/test.svg
及
path.get(“images”).resolve(“test.svg”)
将是/images/test.svg
/test.svg
显然与/images/test.svg
这就是为什么你应该总是和他们一起工作,这样你才能确切地知道他们指的是什么
你只是没有正确地构建路径,正确的是只有你才能知道。好吧,以防万一其他人也有同样的问题 这与文件的大小无关。 问题在于,在某些svg文件中,存在一些
剪辑路径
属性
当图像位于文件夹内时,batik无法解析此路径,这意味着假定image.svg
位于文件夹images
内,以下代码将无法工作:
jsvgcanvas.setURI("images/image.svg");
但是,如果同一图像不在文件夹中,而是在项目所在的主文件夹中,则它将工作:
jsvgcanvas.setURI("image.svg");
Files.copy(Paths.get(path), Paths.get("images").resolve("test.svg"), StandardCopyOption.REPLACE_EXISTING);
canvas.setURI("../../images/test.svg");
jsvgcanvas.setURI("images/image.svg");
jsvgcanvas.setURI("image.svg");