ファイルの書き込みと読み取り操作を行うデスクトップアプリケーションを開発しました。ファイルのパスを取得するには、次のコードを使用しました:
static final String workingDir = System.getProperty("user.dir");
public static final String resourcesPath =
workingDir + File.separator + "src" + File.separator;
Windows変数resourcesPathには含まれていますC:\app\src\が、UNIXベースのシステムでアプリケーションを実行すると、 me が返されます/home/eboss\src\。
Unixベースのシステムでは正しい/home/ebossパスですSystem.getProperty("user.dir");が、それを連結するFile.separatorとパスにこれが追加されます\。その結果、(No such file or directory) エラーが発生します。
unix ベースのシステムが間違ったパスを返すのはなぜですか?