2012-08-06 101 views
0

我有两个项目,其中一个依赖于另一个项目,即项目A取决于项目B,两个项目驻留在不同的目录中。Java - 项目依赖和当前相对工作目录

在独立项目,即项目B中,存在一个类,其中包含一个代码,该代码尝试访问独立项目目录中的目录和文件。由于取决于的项目,即项目A,从独立项目实例化对象,当对象执行System.getProperty("user.dir")时,它返回执行目录,即依赖项目的目录;这同样适用于new File(".").getAbsolutePath()

我想以通用的方式解决问题,即我希望避免需要作为参数传递路径,而是希望以编程方式使用相对目录。

任何指导\线索? P.S.不知道它是否相关,但我使用Eclipse作为我的IDE。

UPDATE 这应该持...

final String clsName = getClass().getName() + ".class"; 
System.out.println(getClass().getResource(clsName)); 

回答

1

我会使用的类加载器,而不是直接使用的路径。在eclipse中,在部署情况下,两个项目资源应该位于类路径中。

ProjectA 
    example.png 
ProjectB 
    foo.txt 

像这样的东西应该能够从任一项目的负荷的资源或B.

URL url = getClass().getResource("/example.png"); // get URL 
InputStream stream = getClass().getResource("/foo.txt").openStream(); // open a stream 
+0

的确。我刚刚发现这是解决方案。很快我会点击支票。此外,更新我的帖子。 – MrRoth 2012-08-06 08:38:03