eg:
TemplateCode.class.getClass().getClassLoader().getResource("foo/bar.txt")
TemplateCode.class.getClassLoader().getResource("foo/bar.txt")的区别
第二句话实际上还是调用的第一句,
区别在于第一句话不能以/开始,并总是从classpath的根目录开始查找,
第二句如果以/开始,则从根目录开始查找,如果开始不加/则从当前类所在的路径开始查找
验证通过
参考原文
http://stackoverflow.com/questions/14739550/what-is-the-difference-between-getclass-getclassloader-getresource-and-get
引用
The second one calls the first one. The difference is described in the javadoc.
The first one takes paths that don't start with a /, and always starts at the root of the classpath.
The second one takes path that can start with a /. If it does, it starts at the root of the classpath. If not, it starts at the package of the class on which the method is called.
So getClass().getClassLoader().getResource("foo/bar.txt") is equivalent to getClass().getResource("/foo/bar.txt").
And, assuming getClass() returns a class that is in the package foo, getClass().getResource("bar.txt") is equivalent to getClass().getClassLoader().getResource("foo/bar.txt")
分享到:
相关推荐
URLTest.class.getClassLoader().getResource().getPath(); Thread.currentThread().getContextClassLoader().getResource().getPath();等多种相似方式获得的路径,不能被FileReader()和FileWriter()直接应用...
2. 使用Guava的`Resources.getResource`,它提供了一种更简洁的接口,同时支持绝对和相对路径。 理解并掌握这些方法,可以帮助你在项目中更便捷地处理资源文件,提升代码的可读性和维护性。如果在实际应用中遇到...
4. `FileTest.class.getClassLoader().getResource("")`:再次,这个方法也用于获取当前ClassPath的绝对URI路径,路径结果和之前的一致。 5. `ClassLoader.getSystemResource("")`:这个方法返回的是系统类加载器的...
URL resource = getClass().getClassLoader().getResource("example.txt"); if (resource != null) { System.out.println("Resource found: " + resource); } else { System.out.println("Resource not found....
- `getClassLoader().getResource("/")`会返回`classpath`的根目录,但`getClassLoader().getResource("/")`是错误的用法,因为这会导致路径解析出错。 #### 七、结论 通过本文的介绍,我们可以了解到Java中获取...
System.out.println(Test.class.getClassLoader().getResource("")); ``` 4. **使用`ClassLoader.getSystemResource("")`**: - 获取系统类加载器的资源路径。 - 示例代码: ```java System.out.println...
一种方法是利用Java的类加载机制,通过`Class`对象的`getClassLoader().getResource("")`方法获取`ClassPath`,然后进一步处理以得到WebRoot。但这种方法只适用于类位于`WebRoot/WEB-INF/classes`下,如果类被打包到...
在 Java 中,我们可以使用 `类名.class.getClassLoader().getResource("").getPath()` 来获取编译后 class 文件目录的绝对路径。 3. JSP 编程中获得当前实际运用的相对路径和绝对路径根列表所对应的绝对路径 在 ...
URL url = Configuration.class.getClassLoader().getResource(filename); String str = url.getFile(); // 转换编码 str = URLDecoder.decode(str, "utf-8"); File conf = new File(str); ...
- `DebitNoteAction.class.getClassLoader().getResource("")`和`ClassLoader.getSystemResource("")`都是获取当前类路径的根目录。 5. **使用系统属性获取路径**: - `System.getProperty("user.dir")`:获取...
该方法使用类名.class.getClassLoader().getResource()方法来获取.properties文件的URL,然后使用openConnection()方法获取连接,最后使用getInputStream()方法获取输入流。例如,Test2.class.getClassLoader().get...
接着,通过`URL`对象定位到"application.yml"文件,这里使用了`Test02.class.getClassLoader().getResource()`方法,它可以从类路径中找到资源文件。 ```java Yaml yaml = new Yaml(); URL url = Test02.class....
URL xmlPath = this.getClass().getClassLoader().getResource("selected.txt"); System.out.println(xmlPath); // 输出:file:/C:/Documents%20and%20Settings/Administrator/workspace/projectName/bin/selected....
Digester digester = DigesterLoader.createDigester(TestDigester.class.getClassLoader().getResource(Constants.CONFIG_MAPPINGRULE_PATH)); digester.setValidating(false);
- **方法**:类加载器提供了`getResource`和`getResourceAsStream`等方法用于查找和读取资源。 2. **资源文件的路径表示**: - 在jar包内部,资源文件的路径通常是以`/`开头的相对路径表示。例如,如果资源文件...
4. **使用 `FileTest.class.getClassLoader().getResource("")`**:这种方法也可以获取当前classpath的绝对路径。 综上所述,通过理解和应用上述推荐的最佳实践及获取路径的方法,可以有效地解决Java路径问题,确保...
System.out.println(FileTest.class.getClassLoader().getResource("")); System.out.println(ClassLoader.getSystemResource("")); System.out.println(FileTest.class.getResource("")); System.out.println...
String f = Hello.class.getClassLoader().getResource("4.txt").getPath(); ``` - 需要注意的是,这种方式同样只能获取到类路径中的资源。 #### 注意事项 - **使用相对路径时**,务必确保路径的正确性,否则...