2012-04-17 106 views
0

我想读从包* 的.class资源。我使用下面的代码来实现这一目标?广东话读取资源

URL path = SomeClass.class.getResource("/source/someClass.class"); 

当我运行这段代码,我结束了path = null;。不过,如果我使用相同的代码,并尝试访问其他资源,如* .gif注意: * .TXT 文件,它是成功的。是否有原因导致我无法访问* .class文件?

+0

网址在罐子是区分大小写的。确保该文件不是被命名为SomeClass.java。 – 2012-04-17 02:03:36

回答

0

可能是资源的路径不正确。因为类目录是特殊的项目。

你可以尝试以下方法:

URL path = SomeClass.class.getResource("PackagePath/someClass.class"); 

的packagepath的像 “/ COM/XXX/projectTest”。

+0

你是对的。非常感谢! – 2012-04-17 20:46:38

0

重读的Javadoc。我认为这说明了两种方法可以使用的getResource():

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Class.html#getResource(java.lang.String

尝试以下操作:

URL path = Class.getResource("modified/package/SomeClass") 

您可能需要使用:

InputStream stream = Class.getResourceAsStream("modified/package/SomeClass") 

因为你只是试图将类文件复制到Jar文件中。

+0

我尝试了下一个:URL url = Class.getResource(“。package.SomeClass”) - 不起作用。 – 2012-04-17 06:56:59

+0

你做错了。这就是为什么它不起作用。使用Class.getResource(“package/SomeClass”)。 javadoc声明您必须用'/'替换完全限定的类名中的'。'。 – chubbsondubs 2012-04-17 14:37:11