7

タイトルは紛らわしいですが、これをいくつかの言葉で説明する方法がわかりません:

*.example ファイルを読み取る Java アプリケーションがあります。ファイルの関連付けも追加したinstall4jので、ユーザーが拡張子 *.example のファイルをダブルクリックするとアプリケーションが起動します

install4j がファイルパスを送信しているように見えるargs[]ので、そのファイルを開いてアプリに表示するのは簡単なはずです。しかし、アプリが既に実行されている場合はどうなりますか? アプリケーションの 1 つのインスタンスしか許可できないので、ユーザーがファイルを開いていることをどのように知ることができますか?

私はこれを見つけました: http://resources.ej-technologies.com/install4j/help/api/com/install4j/api/launcher/StartupNotification.html

しかし、それをどのように使用すればよいのか、このイベントをリッスンするためにアプリに何を追加すればよいのか、まだわかりません。例はどこにありますか?

4

1 に答える 1

4

リンク先のドキュメントに基づいて、これを行うことができるようです:

StartupNotification.registerStartupListener(new StartupNotification.Listener() {
    public void startupPerformed(String parameters) {
        System.out.println("Startup performed with parameters " + parameters);
    }
});

は異なるスレッドから呼び出されるためstartupPerformed、これらの通知を処理するコードがスレッドセーフであることを確認する必要があります。

ドキュメントにも次のように書かれています。

複数のファイルの場合、ファイルは二重引用符で囲み、スペースで区切ります。

そのため、パラメーター文字列も自分で解析する必要があります。

于 2013-04-30T13:45:11.763 に答える