Netbeansで作成したCalculator.jarファイルがあります。絶対パスのないJavaからjarファイルを実行
Javaコードを使用してjarファイルを実行したいとします。 stackoverflowといくつかのドキュメントサイトを見て、私は次を試みた:
コードは正常に実行されますが、私の問題はファイルのパスに付属しています。プログラムを絶対パスなしで実行すると、実行されて終了しますが、電卓のGUIがポップアップすることはありません。絶対パスで実行すると、GUIが期待通りにポップアップします。
ソースコードと同じ場所にjarファイルがあります。私は、絶対パスなしでCalculator.jarを置くだけでいいと思っていました。それはうまくいかないようです。
絶対パスを使用する必要がないように、どのようにjarファイルを格納できるか知っていますか?
編集: また、jarFilesという名前のプロジェクト内に別のパッケージを作成して、パスjarFiles\Calculator.jar
を試しました。それはどちらもうまくいかなかった。私は、デフォルトのパスについて何か誤解していると思う/私はコマンドを呼び出すときにcmdがデフォルトで使用しているパス。私は確信していません。
事前にアドバイスをいただきありがとうございます。私はあなたが抱えている問題は、あなたが
public static void main (String [] args){
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("java -jar \\Calculator.jar");
pr.waitFor();
}
をしようとすると、それはコンピュータのルートディレクトリに見えることであると考えてい
「現在の作業ディレクトリ」は、プログラムを実行する直前に変更したディレクトリです。一部のIDEでは、クラスファイルに関連した特定のポイントに設定されることがあります。しかし、あなたはプログラムを書くときにこれに頼ることはできません。既知の点を基準にしてパスを解決するか、絶対パスを使用します。 – RealSkeptic
しかし、私が "projectpackage \ src \ Calculator.jar"のようなものを書くとうまくいきません。私は技術的にその時点での相対的な経路を設定しています。または、「getWorkingDirectory」のような処理をしてファイルにアクセスする必要がありますか? – JustBlossom
IDEからプログラムを実行するときに現在の作業ディレクトリが何であるかを知ることができます。コマンドラインから実行すると、ユーザーは好きな作業ディレクトリを設定できます。パスをパラメータ、環境変数として渡したり、既知のファイルを基準にして解決することができます。 – RealSkeptic