複数の依存関係を持つ巨大なコマンド ライン アプリケーションで現在のユーザー パスを取得しようとしています。毎回「。」を使用すると、現在のユーザー パス (呼び出しが行われている場所) ではなく、アプリケーション パス (jar が存在する場所) が表示されます。
したがって、これが実行されると:
File file = new File(".");
System.out.println(file.getCanonicalPath());
アプリケーションが存在するパスを教えてくれます。
しかし、別の小さなアプリケーションを作成し、同じコードを使用すると. 別のディレクトリから jar を呼び出すと、現在のユーザー パスが表示されます。
コマンドライン引数にJSAPコマンドラインパーサーを使用していますが、同じように機能します。これはどのように解決できますか?大きなアプリケーションで、アプリケーション パスではなく、現在のユーザー パスを取得する必要があります。
彼らが異なる行動をとる原因は何ですか?