什么错误" java.lang.IllegalArgumentException:URI不是分层的"意思?

时间:2015-03-11 18:36:54

标签: java jar uri

我有一个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线程中的异常   " AWT-EventQueue-0" java.lang.IllegalArgumentException:URI不是   分级   在java.io.File。(未知来源)   在com.simplediptool.DecodeButton1.actionPerformed(DecodeButton1.java:70)

   Line 70: File process_file = new File(url.toURI());

我哪里出错了?

1 个答案:

答案 0 :(得分:0)

而不是使用

DecodeButton.class.getResource(......);

使用

DecodeButton.class.getResourceAsStream(........);

JAR文件是一个联合文件,里面有许多资源,就像ZIP或WAR文件一样。要访问单个资源,您需要将其视为流,因此请使用上述内容。另一方面,在eclipse中,文件可以作为资源直接访问,因此它可以工作。

这将解决您的问题。