2016-12-15 4 views
0

は、私たちはJavaを使用してイメージファイルe.t.cの編集を開くことができることを知っているし、ここに私の例である:Java - 特定のプログラムを使用してファイルを編集するには?

File file = new File("c:\\Users\\Aleksa\\Desktop\\Logo.png"); 
Desktop.getDesktop().edit(file); 

は今、私はそのファイルを編集するために、特定のアプリを開く方法、知りたいです。 例えば、Javaは "Abdobe PhotoShop"を持っているかどうかをチェックし、そうした場合は、写真をプリントショップで開きます。ペイントではありません。 そして、特定のエディタを開いてファイルを編集する方法はありますか?

-お手伝いをよろしくお願いします。 https://docs.oracle.com/javase/tutorial/uiswing/misc/desktop.htmlから

+0

これはアプリに依存しますが、通常は*実行可能ファイルを実行し、ファイルから開くファイルを引数として指定します。 「C:\ Program Files(x86)\ Notepad ++ \ notepad ++。exe」「C:\ Users \ Salmeh \ Desktop \ hello.txt」を選択します。 Javaからプログラムを実行する方法については、Webに多数の例があります。 – Andreas

+0

よかった、助けてくれてありがとう。 –

答えて

1

は、「デスクトップAPIは、特定のファイルタイプに関連付けられたアプリケーションを起動するために、ホスト・オペレーティング・システムのファイルの関連付けを使用する例については、OpenDocumentのテキスト(.odt)ファイルの拡張子はOpenOfficeのライターに関連付けられている場合。 JavaアプリケーションはOpenOffice Writerを起動してその関連付けを含むファイルを開く、編集する、または印刷することができますホストシステムによっては、異なるアプリケーションが異なるアクションに関連付けられている可能性があります。その拡張子が指定されたオペレーティングシステム上で印刷関連を持っているかどうか。

私はこのような関連付けをJavaから変更することはできませんが、可能であればあなたのOSにも影響すると思います。

TL; DR:デフォルトのOSアプリで開く場合は、Desktop.open()を使用してください。カスタムエディタで開く場合は、エディタを明示的に呼び出します(例:Runtime.exec())。

+0

Runtime.execは何年も前にProcessBuilderに置き換えられました。 – VGR

関連する問題