私はこのやや変わったプロセス構造を持っています:
- Launch4J が Java アプリケーションを起動します。Java アプリケーションに単一インスタンス機能を提供するミューテックスを作成します。
- Java アプリケーションは、複数のインスタンスを持つことができる VB6 アプリケーションを開始します。
- Java アプリケーションが終了しても、VB6 アプリケーションはまだ実行されています。(望ましい行動)
問題は、Launch4J によって作成されたミューテックスが、VB6 アプリケーションの終了後にのみ解放されることです。そのため、Java アプリケーションを再度開始することはできません。
なぜこれが起こるのでしょうか?私はミューテックスを明示的に開いていません...
CreateProcess
最初はwithを使用している Java が原因ではないかと疑っていましたが、たとえば、bInheritHandles == true
起動すると問題は発生しません。notepad.exe
編集:私はまだこの問題を抱えています。どんなポインタでも大歓迎です!