2017-04-07 4 views
1

バージョンチェックを行わずにアップデーターを使用して、呼び出し側ランチャーをシャットダウンしようとしています。それはi4jparams.confファイルを見つけることができないことは、この行を実行だとき、私はエラーを取得していますJavaアプリケーションからアップデータディレクトリを指定する方法は?

ApplicationLauncher.launchApplication("368", null, false, null); 

:私は、アップデータを起動するために自分のコードに次のように含めました。明らかにランチャーと同じディレクトリにあるファイルを探していますが、ファイルは実際には.install4j(デフォルト)のサブディレクトリにあります。アップデータアプリケーションもこのディレクトリにあります。

それは私が直接アップデータを呼び出したときに働いていた:

Process process = new ProcessBuilder(".\\.install4j\\updater.exe").start(); 

を残念ながら、このアプローチは、それが新しいアプリケーションをインストール忙しいときにアップデータが呼び出すランチャーをシャットダウンすることはできません。

私は明らかにApplicationLauncher.launchApplication.launch4jディレクトリのアップデータを探すように指示する必要がありますが、これを行う方法がわかりません。

答えて

1

明らかにいいえ、それはそうではありませんlauncher`

と同じディレクトリ内のファイルを探しています。実際のメカニズムは、ランタイムクラスを持つJARファイルがあるディレクトリを使用することです。 i4jruntime.jarを自分でクラスパスに入れると、間違ったディレクトリが使用される可能性があります。

+1

ありがとうございます、あなたの答えは正しい方向に私を指摘しました。私は、エクスポートされたMavenライブラリディレクトリからinstall4j-runtime-6.1.5.jarファイルを除外しなければなりませんでした。 Install4jのファイル配布ツリー定義を変更して、その特定のJARファイルを除外しました。その変更の後、今は正常に動作しています。 – Keplerian

関連する問題