我有一个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());
我哪里出错了?
答案 0 :(得分:0)
而不是使用
DecodeButton.class.getResource(......);
使用
DecodeButton.class.getResourceAsStream(........);
JAR文件是一个联合文件,里面有许多资源,就像ZIP或WAR文件一样。要访问单个资源,您需要将其视为流,因此请使用上述内容。另一方面,在eclipse中,文件可以作为资源直接访问,因此它可以工作。
这将解决您的问题。