私は、launch4jを使用してWindowsアプリケーションで実行可能なjarファイルをラップしていますが、JVM引数を使ってそのライブラリのいくつかへの参照を渡す必要があります。問題のライブラリは、アプリケーションインストールディレクトリにあり、常に実行可能ファイルと同じ場所にあります。launch4jを使用しているときに実行可能ファイルへのパスを取得する方法は?
私は、launch4jにJVMオプションで実行可能な相対パスを使用するように伝えたいと思います。私はこの情報がWindowsのバッチスクリプトレベルで利用可能であることを知っていますが、それをフェッチするためにlaunch4jをどのように設定しますか?明確化のため
編集:私は、バイナリ自体へのパスが相対にする方法のために特別に探していない現在の作業ディレクトリにそれらを相対作る方法。 2つは必ずしも同じではありません。
/launch.exe
/bin/lib.dll
/lib/app.jar
は今、あなたはあなたが発生したランチャーでapp.jar開始したい(launch.exeを):私はあなたの質問が正しい理解していれば
Launch4JランチャーからVM引数を使ってjarファイルを呼び出す理由がわかりません。 Launch4Jはそれらを実行可能ファイルに埋め込むことができます。 Launch4J GUIの* Classpath *タブの* Classpath *リストにjarの名前を追加します。 jarがアプリケーションのインストールパスを基準にしたフォルダの下にある場合は、各jarにフォルダパスを接頭辞として付けます。たとえば、 '。/ lib'フォルダにはすべての外部ジャーが含まれ、メインクラスは'。/ 'にあります。クラスパスリストに '。/ lib/myexternal-1.0.jar'と入力してください。 – ecle
これらはjarファイルではないため、ネイティブライブラリです。私がこの方法でロードする必要があるものに関しては、まずSWTブラウザを使用していて、特定のXULRunnerインストール(バンドルされている)をロードします。これを行うには、org.eclipse.swt.browser.XULRunnerPathを設定する必要があります。次に、ロードする必要のある自分のコードで使用されるネイティブDLLがあります。私はそうするためにjava.library.pathを設定したいと思います。 –
'System.getProperties()。list(System.out)'( "user.dir")と 'System.env'を試しましたか? –