现有如下项目结构:
注意:cn.edu.test 中的小数点表示包名的分隔,这种是eclipse中的包名折叠显示方式。可手动设置。无展开项时,默认包名折叠。
带码规范:代码中用相对地址 " / ",以保证代码的可移植性,而避免使用绝对地址 " \\ " 。
前言扩展
TestClass .class.getResource(String path): 获取资源文件路径。path是以.class文件为目标的相对路径。
Class对象的生成方式如下:
- Class.forName(“类名字符串”) (注意:类名字符串必须是全称,包名+类名)
- 类名.class
- 实例对象.getClass()
相对路径测试代码
package cn.edu.test;
public class TestClass {
public static void main(String[] args) {
// 打印class资源文件路径
System.out.println(TestClass.class.getResource(""));
System.out.println(TestClass.class.getResource("./"));
System.out.println(TestClass.class.getResource("../"));
System.out.println(TestClass.class.getResource("/"));
}
}
输出
file:/E:/java-workspace/Test/bin/cn/edu/test/
file:/E:/java-workspace/Test/bin/cn/edu/test/
file:/E:/java-workspace/Test/bin/cn/edu/
file:/E:/java-workspace/Test/bin/
说明
"" 和 "./" 表示当前目录
"../" 表示上一级目录
"/" 表示根目录。根目录为:项目src资源文件目录,也是.class字节码文件目录,或者说工程项目文件下的bin目录。
相对地址符号混用测试代码
package cn.edu.test;
public class TestClass {
public static void main(String[] args) {
System.out.println(TestClass.class.getResource("././"));
System.out.println(TestClass.class.getResource(".././"));
System.out.println(TestClass.class.getResource("./../"));
System.out.println(TestClass.class.getResource("../../"));
System.out.println(TestClass.class.getResource("/./"));
}
}
输出
file:/E:/java-workspace/Test/bin/cn/edu/test/
file:/E:/java-workspace/Test/bin/cn/edu/
file:/E:/java-workspace/Test/bin/cn/edu/
file:/E:/java-workspace/Test/bin/cn/
file:/E:/java-workspace/Test/bin/
说明
"./" "../" "/" 可混用。