【发布时间】:2014-04-14 14:58:53
【问题描述】:
我已经尝试了有关我在 stackoverflow 上看到的有关此问题的所有内容,但似乎无法使用 .getClass 方法正确检索 xml 文件。我继续得到一个空指针异常,但不知道为什么。我尝试了几种变体。如果我做错了什么,请告诉我。此外,如果您需要任何其他信息,请询问:D。以下是我尝试过的一些变体
URL configURL = new URL("" + Transcriber.class.getClass().getClassLoader().getResourceAsStream("/config.xml"));
ConfigurationManager cm = new ConfigurationManager(configURL);
URL configURL = new URL("" + Transcriber.class.getClass().getClassLoader().getResource("/config.xml"));
ConfigurationManager cm = new ConfigurationManager(configURL);
InputStream configURL = Transcriber.class.getClass().getClassLoader().getResourceAsStream("/config.xml");
ConfigurationManager cm = new ConfigurationManager(configURL.toString());
我还应该注意,当使用 eclipse 时,我能够检索 xml。但是,当转换为可执行 jar 时,我不能。
编辑:
URL configURL = new URL("" + Transcriber.class.getResourceAsStream("config.xml"));
控制台输出 =
Exception in thread "main" java.net.MalformedURLException: no protocol: java.io.BufferedInputStream@238be9f2
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at speechcapture.Transcriber.main(Transcriber.java:53)
【问题讨论】:
-
jar 中的
config.xml资源在哪里? -
与 Transcriber.class (bin/speechcapture/) 位于同一包文件夹中
-
上一篇文章完美解释了这个问题stackoverflow.com/questions/1119740/…
-
@AurA 我似乎已经尝试过链接中列出的方法,除非我在阅读提供的答案时错过了一个。
标签: java nullpointerexception classloader configurationmanager