0

我有两个项目,其中一个依赖于另一个,即项目 A 依赖于项目 B,并且这两个项目位于不同的目录中。

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

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

任何指导\线索?PS 不确定它是否相关,但我使用 Eclipse 作为我的 IDE。

更新 这应该保持...

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

1 回答 1

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
于 2012-08-06T08:35:06.757 回答