我想根据一个类的名称返回这个类的路径,结果返回的路径下面多了一个!符号。
URL url = null;
url = getClass().getResource(strClassFileName + ".class");
String strURL = url.toString();
strURL = strURL.substring(strURL.indexOf('/') + 1, strURL.lastIndexOf('/'));
return strURL;错误表现为
08/10/22 16:52:26 java.io.FileNotFoundException: D:\Code\JAVA\service\WebRoot\WEB-INF\classes\!com\service\directory\ (系统找不到指定的路径。)
返回的路径下面中在classes后面突然多出来!符号,我单步进去发现getResource返回的url中就自动带上了。
URL url = null;
url = getClass().getResource(strClassFileName + ".class");
String strURL = url.toString();
strURL = strURL.substring(strURL.indexOf('/') + 1, strURL.lastIndexOf('/'));
return strURL;错误表现为
08/10/22 16:52:26 java.io.FileNotFoundException: D:\Code\JAVA\service\WebRoot\WEB-INF\classes\!com\service\directory\ (系统找不到指定的路径。)
返回的路径下面中在classes后面突然多出来!符号,我单步进去发现getResource返回的url中就自动带上了。
ClassLoader.getSystemClassLoader().getResource(strClassFileName + ".class")
url = this.getClass().getResource(strClassFileName+ ".class");
如果直接以某个名字开头,那么就是从当前包名的目录为起点开始寻找。而楼上朋友说的在使用ClassLoader的getResource方法的时候,永远是以Classpath为直接起点开始寻找
资源的。不用担心从什么包开始寻找的问题。用Class.getResource不加/就是从当前包开始找,用ClassLoader.getResource不加/就是
直接从Classpath的起点开始寻找。