我有两个项目,其中一个依赖于另一个,即项目A依赖于项目B,这两个项目位于不同的目录中。
在独立项目(即项目B)中,有一个类,其中包含一个代码,该代码尝试访问与独立项目目录相关的目录和文件。由于依赖项目,即项目A,从独立项目中实例化一个对象,当对象执行System.getProperty("user.dir")
时,它返回执行目录,即依赖项目的目录;同样适用于new File(".").getAbsolutePath()
。
我想以通用方式解决问题,即我希望避免将路径作为参数传递,而是希望以编程方式使用相对目录。
任何指导\线索? 附:不确定它是否相关,但我使用Eclipse作为我的IDE。
更新 这应该举行......
final String clsName = getClass().getName() + ".class";
System.out.println(getClass().getResource(clsName));
答案 0 :(得分:1)
我使用类加载器而不是直接使用路径。在eclipse中,在部署情况下,两个项目资源都应该在类路径中。
ProjectA
example.png
ProjectB
foo.txt
这样的东西应该能够从项目A或B加载资源。
URL url = getClass().getResource("/example.png"); // get URL
InputStream stream = getClass().getResource("/foo.txt").openStream(); // open a stream