2012-03-04 9 views
5

Windowsの下にあるJavaアプリケーションにいくつかのファイル拡張子を「リンク」させたいと思います。ユーザーが "リンクされた"拡張子を持つファイルをダブルクリックすると、私は自分のアプリケーションを開きたいと思います。起動されたアプリケーションのパスを知る必要があります。ウィンドウ内のJavaアプリケーションにカスタムファイル拡張子を関連付ける

答えて

3

アプリを導入する場合。 Java Web Startを使用すると、ファイルタイプへの関心を起動ファイルで宣言できます。

は、コンテンツタイプtext/sleepytimeのファイル拡張子.zzz(既存のファイルの関連付けと衝突する可能性は低い、単にファイルタイプ)を関連付けるために、ユーザを..promptsた.. demo. of the file servicesを参照してください。 ..

ユーザーが.zzzファイルをダブルクリックすると、アプリケーションで開くはずです。実際には、「プロンプト」という言葉は全話ではありません。 sand-boxedバージョンを起動すると、ファイルタイプを関連付けるように求められます。信頼できるバージョンはプロンプトを表示しません。

ユーザーコントロールをプロセスに追加するには、1.6.0_18で導入されたIntegrationService(まだデモはありません)を参照してください。ユーザーと確認した後、起動時に実行することができます。

2

これは、インストール時に行わなければなりません。ユーザーにアプリケーションをインストールさせる計画はどうですか?

は、あなたはあなただけのものが全体の多くより複雑に作られたこの段階で実現しなければなりません。ファイル拡張子の登録は、レジストリに干渉することを意味します。ユーザーがあなたのアプリケーションをもう必要としない場合はどうなりますか?またはアプリケーションを起動するファイルを移動しますか?

インストールの作成者を選択する必要があります。ここではそれについてとても質問です:https://stackoverflow.com/questions/3767/what-is-the-best-choice-for-building-windows-installers

は、その後、あなたはそのインストーラ作成者の言語を習得する必要があります。ここであなたが求めているのは、nsisで行われます。 「ユーザーがアプリケーションをアンインストールし、インストール時にファイルの関連付けを変更しなかった場合、アンインストール時にこれらのファイルの関連付けを削除する必要がありますか?それは少し長いです。ここでは、とにかくです:http://nsis.sourceforge.net/File_Association

は、多分それは別のインストーラの作成者では簡単な方法で行うことができます。

しかし、この例では、あなたはNSISのレジスタ機能をあなたのアプリケーションの起動コマンドを与え、そしてそれは、Windowsのファイルの関連付けの起動コマンドに、それに%1を追加します。開始コマンドを与える必要があります。

javaw -cp installpath\yourcode.jar package.name.MainClassName 

これで問題は解決します。これはもちろんいくつかの実験を行いますが、コマンドラインからアプリケーションを起動する方法についてはかなりの注意が必要です。

幸運!

+0

ありがとうございました。もう1つのことは気になります:アプリケーションを正確に起動したファイルを知る方法? Javaのデータをどのように読むことができますか? – dario111cro

+0

ああ、fileがargsでappに送信されたようです。 args [0]は "-open"であり、args [1]はappを起動したファイルへのパスを含んでいます。あなたの助けをありがとう:) – dario111cro

+0

@ dario111croあなたは歓迎です:)どのようなタイプの流通を選んだのですか?ネシスと一緒に行きましたか? – davogotland