2017-08-23 10 views
0

Eclipseで作業しているすべてのJavaプロジェクトを保存するワークスペースがあります。 D:\Workspace\としましょう。私は、このワークスペースで、ルートが言うことができるプロジェクトを持っています:D:\Workspace\DoubleDotting\相対パスを使って作業するときEclipseのプロジェクト作業ディレクトリを設定する

では、Javaプロジェクトは、mainメソッドでは、私は次のようにファイルオブジェクトを作成し、言った:

ファイルdoubleDotted =新しいファイル( ".. \ Folder1に\のfile.xyz");

D:\Projects\DoubleDotting\Folder2\に実行可能なジャーなどのプログラムをエクスポートする瞬間D:\Projects\DoubleDotting\Folder1\file.xyzが存在するため、プログラムは、うまく実行されます。

D:\Workspace\DoubleDotting\Folder1\file.xyzが存在しないので、Eclipseからプログラムを実行/デバッグすると、当然FileNotFoundExceptionとなります。

類似の作業構造を持つ複数のディレクトリに適用できる汎用プログラムで作業する場合、相対パスを使用すると時間を節約できますが、Eclipse内でデバッグするのは頭痛です。

の中でプロジェクトの作業ディレクトリを仮想的に変更する方法はありますか、eclipse内で実行/デバッグする唯一のソリューションであるプロジェクトディレクトリ内にこのようなフォルダ/ファイルを作成することは怠惰ですか?

+2

起動設定(デフォルトではプロジェクトディレクトリ)に作業ディレクトリを設定することができます。https://stackoverflow.com/a/329141/6505250 – howlger

+0

@howlgerあなたは女性の美しい息子です!これは答えになるはずです! – Yokhen

答えて

0

これで賢明なことができます。プロジェクトのルートに単純なクラスを作成するだけの場合は、.(現在のディレクトリ)が指している場所を単純に参照できます。ビューの実行時の時点から現在のディレクトリが配置されている場所 Egが

public static void main(String[] args) { 
    System.out.println(new File(".").getAbsolutePath()); 
} 

これはあなたが表示されます。その上に相対パスを構築します。

+0

確かに。私は同様の回避策で作業していました: '.class.getProtectionDomain()。getCodeSource()。getLocation()。toURI()。getPath()'しかし、あなたのソリューションはよりスマートになると思います。 – Yokhen

関連する問題