2

ファイルをダブルクリックするだけで、Java で記述されたプログラムでファイルを開くことができるかどうかを知りたいですか?

例: 私のデスクトップには、私のプログラムによってビルドされたファイル「test.dat」があります。このファイルを開こうとすると、プログラムが表示され、そのファイルをどうしたいか尋ねられます。

Javaを使用してその機能を実装することは可能ですか?

4

3 に答える 3

4

特定の拡張子に関連付けるアプリケーションを決定するのは、オペレーティング システムです。それが機能する場合は、プログラムですべての .datファイルを開くように OS を構成できます。または、何を使用するかを示すショートカットまたはランチャーを作成します。

于 2013-04-23T07:54:11.280 に答える
2

私はあなたが求めていることを理解しています。OS からアプリケーションに渡されたパラメーターを取得してから、open file メソッドを呼び出す方法を知りたいと考えています。

Java プログラムには、アプリケーションを開始するために呼び出される main メソッドを持つクラスがあります。このクラスは、マニフェスト ファイルに Main-Class: com.your.package.MainClass としてリストされています。メソッドのシグネチャは次のようになります。

public static void main(final String args[]) {

文字列配列 args[] には、コマンド ラインからプログラムに渡されるすべてのパラメーターが含まれます。ファイルを実行可能ファイルに関連付けるように OS に指示し、そのファイルをダブルクリックすると、OS はファイル名 (フル パス) をこの文字列配列の最初のパラメーターとして実行可能ファイルに渡します。注意が必要なのは、jar ファイルは実行可能ファイルではないため、ファイル拡張子を jar ファイルに関連付けることができないことです。jar ファイルは、実際には java.exe または javaw.exe に関連付けられています。したがって、これを機能させるには、java.exe または javaw.exe を呼び出し、クラス パスを jar ファイルに設定し、メイン クラスを実行してからパラメータを渡すバッチ ファイル (または OS によってはシェル スクリプト) を作成する必要があります。あなたのプログラムに。これは、Windows のバッチ ファイルで実行する方法です。

"C:\Program Files\Java\jre1.8.0_25\bin\javaw.exe" -cp C:\Path\To\Your\Jar\File.jar com.your.package.MainClass %1

次に、.dat ファイルを jar ファイルに関連付ける代わりに、このバッチ ファイルに関連付けます。%1 により、ファイル名が args[0] として MainClass に渡され、それを openFile(arg[0]) メソッドに渡すことができ、ファイルが開いています。%1 だけに限定されているわけではありません。OS が複数のファイルをプログラムに渡す場合 (たとえば、複数の .dat ファイルを選択した場合) は、%1 %2 %3 などを持つことができます。これは、Unix シェル スクリプトでも同様の方法で実行されます。

/usr/bin/javac -cp /Path/To/Your/Jar/File.jar com.your.package.MainClass %1
于 2015-01-19T09:38:49.927 に答える
0

ダブルクリックによるファイルの「オープン」は、ファイル拡張子を特定のプログラムにマッピングすることによって制御される Windows OS の機能です。

ファイルにパックされた Java プログラムを実行する場合jarは、いわゆる「実行可能な」jar を作成し、jar 拡張子をjavaorという名前のプログラムにマップする必要がありjavawます。

于 2013-04-23T07:53:37.143 に答える