错误 "java.lang.IllegalArgumentException: URI i s not hierarchical" 是什么意思?
What does the error "java.lang.IllegalArgumentException: URI i s not hierarchical" mean?
我有一个 java 应用程序,它使用 xml 文件对图像信息进行解码。 xml 文件位于最顶层的包中。这是我用来获取文件的代码
java.net.URL url = DecodeButton.class.getResource("/text.xml");
File process_file = new File(url.toURI());
在 Eclipse 中 运行 时代码运行良好。当我创建 jar 并按下解码按钮执行解码时,这是错误:
jar:file:/C:/simple3.jar!/text.xml Exception in thread
"AWT-EventQueue-0 " java.lang.IllegalArgumentException: URI is not
hierarchical
at java.io.File.(Unknown Source)
at com.simplediptool.DecodeButton1.actionPerformed(DecodeButton1.java:70)
Line 70: File process_file = new File(url.toURI());
我哪里错了?
而不是使用
DecodeButton.class.getResource(......);
使用
DecodeButton.class.getResourceAsStream(........);
JAR 文件是一个包含许多资源的统一文件,就像 ZIP 或 WAR 文件一样。要访问单个资源,您需要将其视为流,因此请使用上面的内容。另一方面,在 eclipse 中,文件可以作为资源直接访问,因此它有效。
这将解决您的问题。
我有一个 java 应用程序,它使用 xml 文件对图像信息进行解码。 xml 文件位于最顶层的包中。这是我用来获取文件的代码
java.net.URL url = DecodeButton.class.getResource("/text.xml");
File process_file = new File(url.toURI());
在 Eclipse 中 运行 时代码运行良好。当我创建 jar 并按下解码按钮执行解码时,这是错误:
jar:file:/C:/simple3.jar!/text.xml Exception in thread "AWT-EventQueue-0 " java.lang.IllegalArgumentException: URI is not hierarchical at java.io.File.(Unknown Source) at com.simplediptool.DecodeButton1.actionPerformed(DecodeButton1.java:70)
Line 70: File process_file = new File(url.toURI());
我哪里错了?
而不是使用
DecodeButton.class.getResource(......);
使用
DecodeButton.class.getResourceAsStream(........);
JAR 文件是一个包含许多资源的统一文件,就像 ZIP 或 WAR 文件一样。要访问单个资源,您需要将其视为流,因此请使用上面的内容。另一方面,在 eclipse 中,文件可以作为资源直接访问,因此它有效。
这将解决您的问题。