の作業ディレクトリを取得します。 Path path = Paths.get(*ClassName*.class.getProtectionDomain().getCodeSource().getLocation().toURI());
私はこのコードを使用して現在のJavaプログラムの作業ディレクトリを取得することができ、別のJavaプロセス
また、私はのCommandLineパラメータを取得することができます(ただし、出力にはディレクトリが存在しない)は、Javaを実行するので使用して処理しこのコマンドwmic process get CommandLine where name='java.exe' /value
別のJavaプロセスの作業ディレクトリを取得することができます(よりプログラム的に)。おそらくそれはいくつかのjdk/binユーティリティで解決できますか?
*クラス名* .class.getProtectionDomain()getCodeSource()のgetLocation()toURI()はいくつかの状況で失敗します。。。。現在のディレクトリが必要な場合は、単に 'System.getProperty(" user.dir ")'を使用しないでください。 – VGR
'getProtectionDomain()。getCodeSource()。getLocation()'は*コード位置*(名前が示すように)を提供します。*は*必ずしも作業ディレクトリと同じではありません。異なるクラスが異なるコードソースを持っていると考えると明らかです。さらに、 'Paths.get'を介して' Path'にその位置を変換するのは、 'file:' URIでも失敗します。 jarファイルに含まれるクラスの場合現在の絶対パスを知りたい場合は、 'Paths.get(" ")。toAbsolutePath()'を使用することができます。 – Holger