0

私はjava.nioの世界が初めてです。

Java モジュール内にログ ファイル app.log があります。(Intellij 11を使用しています)。

モジュールには、テストフォルダーがあり、ローカルファイル app.jar があります。

Files.newInputStream(path) メソッドを使用して、このファイルを InputStream に読み込みたいと思います。

問題は、ウィンドウでは、入力パスの完全な値を次のように指定する必要があることです。

Path path = Paths.get("C:\\Perforce\\depot\\Project\\module\\src\\test\\a\\b\\c\\app.jar");

誰かがこのコードを取得し、自分のマシンに app.jar にアクセスするための同様のフォルダー構造があるかどうかはわかりません

私のテストが書かれているローカルフォルダにファイル app.jar を保持しました。このパスを一般化する方法はありますか? 私の Test クラスが app.jar が存在する同じフォルダーの下にある場合、完全なローカルパスを言及しないようにするメカニズムはありますか?

ありがとう、ビジェイ・ボア

4

2 に答える 2

0

相対パスを使用します。Paths.get() は、現在のユーザー ディレクトリに対して相対パス名を解決します。このディレクトリは、システム プロパティ user.dir によって名前が付けられ、通常は Java 仮想マシンが呼び出されたディレクトリです。

つまり、app.jar が app_home フォルダーの直下にあり、app_home が java.exe を実行する場所である場合、Paths.get("app.jar") は機能するはずです。

于 2013-03-08T01:20:41.240 に答える