0

一方が他方に依存している 2 つのプロジェクトがあります。つまり、プロジェクト A はプロジェクト B に依存しており、2 つのプロジェクトは異なるディレクトリに存在します。

独立プロジェクト、つまりプロジェクト B には、独立プロジェクト ディレクトリに関するディレクトリとファイルにアクセスしようとするコードを保持するクラスがあります。依存プロジェクト、つまりプロジェクト A は、独立プロジェクトからオブジェクトをインスタンス化するため、オブジェクトが実行System.getProperty("user.dir")されると、実行ディレクトリ、つまり依存プロジェクトのディレクトリが返されます。についても同様ですnew File(".").getAbsolutePath()

私は一般的な方法で問題を解決したいと思います。つまり、パスを引数として渡す必要はなく、プログラムで相対ディレクトリを使用したいと考えています。

ガイダンス\手がかりはありますか? PS関連があるかどうかはわかりませんが、IDEとしてEclipseを使用しています。

更新 これは保持する必要があります...

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 に答える