2

私は小さなリモート増分更新プログラム (https://github.com/HitTheSticks/alamode) を持っています。これは Java で書かれており、メイン ソフトウェア (これも Java で書かれています) を実行するたびに起動する必要があります。メイン プログラムによってクラスパスに取り込まれたあらゆる種類のファイルを処理することになるため、アップデーターをメイン ソフトウェアと同じプロセス空間で実行することはお勧めできません。

アップデーターには基本的に依存関係がないため、安全なコンテキストを使用してランチャーを生成し、メイン プログラムの前に実行するだけです。

しかし、Java の exec() 機能は fork()/exec() セマンティクスに従っていません。つまり、アップデーターが exec() を実行すると、ランチャーによって両方のJVM が同時に実行され、すべてのロギング IO がアップデーターを介してフィルタリングされます。うん。

ユーザーが [my start menu item] をクリックしたときに、[my updater]->[my program] が常にシームレスに実行されるようにするにはどうすればよいですか?

「com.install4j.api.launcher.ApplicationLauncher」が表示されますが、起動したアプリケーションを停止せずに呼び出し元のアプリケーションを終了できるかどうかが指定されていません。そしてできれば、アプリケーションをまったく入れ子にしないでください...それらを順番に起動したいと思います。

ああ、ソリューションが少なくともほとんど移植可能であれば、それは素晴らしいことです。

4

0 に答える 0