2013-04-30 12 views
6

タイトルのために聞くことは紛らわしいですが、いくつかの単語にこれを説明するのか分からない:Windows上のイベント「私のJavaアプリケーションでファイルを開く」

私は*。実施例のファイルを読み込み、javaアプリケーションを持っています。また、install4jのファイルアソシエーションを追加しました。拡張子が* .exampleのファイルをダブルクリックしたときにアプリケーションが起動されるようになりました。

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

私は、この発見しました:http://resources.ej-technologies.com/install4j/help/api/com/install4j/api/launcher/StartupNotification.html

をしかし、私はまだ私はそれを使用する方法を理解していないと私は、このイベントをリッスンするために私のアプリに何を追加する必要があります。例はどこにありますか? startupPerformedは異なるスレッドから呼び出されるので

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

、あなたはこれらの通知を処理するコードがあることを確認する必要があります:あなたがにリンクされドキュメントに基づいて、それはあなたがこれを行うことができますように

+0

Install4Jで解決策が見つからない場合、常に[Java Web Start](http://stackoverflow.com/tags/java-web-start/info)があります。 [ファイルサービスのデモ](http://pscode.org/jws/api.html#fs)には、新しいファイルを開いたときだけでなく、初回起動時にそのファイルを使用する方法が示されています。 –

答えて

4

に見えますスレッドセーフです。

ドキュメントも書かれています:

複数のファイルの場合、ファイルは二重引用符で囲まれていると、スペースで区切られています。

したがって、パラメータ文字列も自分自身で解析する必要があります。

+0

いいね、私は明日試して受け入れます。ありがとう@andrewdotn! – TheBronx

+1

it =)プロジェクトのライブラリとして 'i4jruntime.jar'を追加し、' main() 'の中にサンプルコードを使用しました。このイベントは、アプリケーションが実行されているときにファイルを開き、 'parameters' varにファイルの絶対パスが含まれているときに発生します。 – TheBronx

関連する問題