我有两个项目:Test1和Test2。测试2有一个测试项目文件夹的脚本:
this.getClass().getClassLoader().getResource("").getPath()
结果是:
/home/andy/Documents/Project/Test2/build/classes/
当Test2将Test1添加到编译时库中时:
this.getClass().getClassLoader().getResource("").getPath()
结果是:
/home/andy/Documents/Project/Test1/build/classes/
所以我的问题是:
将Test1添加到编译时库后,为什么路径不是/home/andy/Documents/Project/Test2/build/classes/
?
答案 0 :(得分:0)
您正在请求类加载器,更具体地说是用于加载Test2.class的类加载器。之后,您要求类加载器为您提供资源。类加载器的默认行为是询问父类加载器,它是否可以解析请求。由于您没有父类加载器,因此将使用jvm的bootstrap类加载器。当询问具有空名称的资源时,它可以通过类路径的第一个条目来满足此要求。根据NetBeans配置类路径的方式,可以是Test1或Test2。
如果您想获得确定性结果,请从项目中指定资源,该项目对项目是唯一的。