7

.mcsdJava Swingアプリケーションを作成していますが、自分のプログラムをファイル拡張子(MIMEタイプ)のデフォルトプログラムとして設定する必要がありますtext/mcsd。これはWindowsで機能する必要があり、OS X/Linuxでも機能すると便利です。私はJavaに少し慣れていないので(3か月または4か月)、あらゆる種類の専門家の話で私を攻撃しないでください。

Windowsでカスタムファイル拡張子をJavaアプリに関連付けるのを見てきましたが、JavaWebStartを使用したくありません。可能であれば、そのファイルタイプのアイコンを設定する方法も知りたいです。私はexe4jを作成する方法として見つけ.exe、それを使用する予定ですが、exeに変換するための最良のツールではない場合、または誰かがもっと良いことを知っている場合は、遠慮なく教えてください。もう1つ、プログラムを開いた後、このファイルからデータを取得できるようにする必要があります。

だから私の質問は:どうすればこれを行うことができますか?

4

1 に答える 1

8

アプリをデプロイします。Java Web Startを使用:

JWSは、スプラッシュスクリーン、デスクトップ統合、ファイルの関連付け、自動更新など、多くの魅力的な機能を提供します。

ファイルサービスのデモを参照してください。.zzzファイルタイプへの関心を宣言するJNLPの例。

これは、JNLPで関連付けが宣言される方法です。

<association
  extensions="zzz"
  mime-type="text/sleepytime" />

JWSはOracleによって提供され、Windows、* nix、およびOSXで動作します。

..しかし、私はJavaWebStartを使用したくありません。Webページなどを開かずにプログラムをインストールするだけのネイティブインストーラーが欲しいからです。それが(Web Start)の仕組みではない場合は、喜んで使用します。

JWSは、Webまたはネットワーク上で機能します。ただし、デスクトップから(JNLPへの)URLを開くことができる場合は、ブラウザーを開く必要はありません。

openConnection()URLオブジェクトを使用してそれを行いますか?

DesktopまたはBasicServiceAPIを使用します。

Desktop.getDesktop().browse(uri);

boolean result = basicService.showDocument(url);

BasicServiceデモで述べたように。

Java 6以降では、別のWeb Start起動ファイルを表示するための呼び出し(たとえばBasicService.showDocument(another.jnlp))、ブラウザーウィンドウが表示されずにJavaWSに直接渡されます。

DesktopJWSクライアントがそのファイルタイプのデフォルトのコンシューマーであることを考えると、これは常にAPIに当てはまると思います。

于 2013-03-16T01:19:57.570 に答える