ファイルをダブルクリックするだけで、Java で記述されたプログラムでファイルを開くことができるかどうかを知りたいですか?
例: 私のデスクトップには、私のプログラムによってビルドされたファイル「test.dat」があります。このファイルを開こうとすると、プログラムが表示され、そのファイルをどうしたいか尋ねられます。
Javaを使用してその機能を実装することは可能ですか?
ファイルをダブルクリックするだけで、Java で記述されたプログラムでファイルを開くことができるかどうかを知りたいですか?
例: 私のデスクトップには、私のプログラムによってビルドされたファイル「test.dat」があります。このファイルを開こうとすると、プログラムが表示され、そのファイルをどうしたいか尋ねられます。
Javaを使用してその機能を実装することは可能ですか?
特定の拡張子に関連付けるアプリケーションを決定するのは、オペレーティング システムです。それが機能する場合は、プログラムですべての .dat
ファイルを開くように OS を構成できます。または、何を使用するかを示すショートカットまたはランチャーを作成します。
私はあなたが求めていることを理解しています。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
ダブルクリックによるファイルの「オープン」は、ファイル拡張子を特定のプログラムにマッピングすることによって制御される Windows OS の機能です。
ファイルにパックされた Java プログラムを実行する場合jar
は、いわゆる「実行可能な」jar を作成し、jar 拡張子をjava
orという名前のプログラムにマップする必要がありjavaw
ます。