2010-12-14 12 views
13

私はコマンドラインからJavaアプリケーションを実行しています。コマンドライン引数を指定して、現在実行中のディレクトリを、アプリケーションが実際に実行される場所以外に設定することはできますか?javaコマンドラインから現在の実行ディレクトリを設定できますか?

+0

これは重複しているとは分かりませんが、参考になる可能性があります。http://stackoverflow.com/questions/840190/changing-the-current-working-directory-in-java – khachik

+0

はい、参考になるかもしれません。新しいファイル(親、パス)が機能するかもしれません。私はそれを試さなければならないでしょう。私がこの質問を投稿した理由は、アプリケーションがロードするDLLでプロファイラを使用しようとしていることです。基本的にjava.exeをプロファイルする必要があるので、現在の作業ディレクトリは自分のjdkフォルダに設定され、アプリケーション内の相対パスがスローされます。 – user538442

+0

プロファイラには開始ディレクトリを設定するオプションが必要です。あるいは、BATファイルを作成し、それを実行するようにプロファイラに指示することは可能でしょうか? –

答えて

0

現在のディレクトリを変更する場合は、JNIを使​​用してJavaコードからネイティブAPIを呼び出す必要があります。

#!/bin/sh 
cd <your dir> 
java <some arguments> 

JNI-ソリューションは、すべてに影響を与える可能性があります可能性それはすべて私はむしろJavaアプリケーションを実行すると、スクリプト内のディレクトリを設定するためのスクリプトを使用している場合たとえば、WindowsのためにあなたはSetCurrentDirectory

+0

私はJNIを使​​用していますので、これは可能な解決策かもしれません。 – user538442

+0

これはあなたのコードを完全に移植性のないものにするでしょう。 –

3

を使用しますアプリケーション内の相対パスの種類。

33

JVMの作業ディレクトリを設定するために使用できるJVM引数-Duser.dirがあります。

0

この投稿が見つかりました。私の問題を解決するのに役立ちました。私はIntelliJについて何かを共有したいと思っていましたが、他の人を動かすかもしれません。

私は-Duser.dirフラグが使用され、また、作業ディレクトリのテキストフィールドが記入された場合、以下の画像を掲載している。

"Working Directory" field has lower precedence than the -Duser.dir flag.

をこのような状況では、作業ディレクトリは次のように設定されます「2ndTry」ではなく「JarLearning」。

関連する問題