web-dev-qa-db-ja.com

Javaでメモ帳ファイルを開く方法は?

Javaプログラムでメモ帳を開きたい。このボタンをクリックすると、メモ帳が表示されるボタンが1つあるとします。すでにファイル名とディレクトリがあります。

このケースをどのように実装できますか?

7
guilgamos

試してみてください

if (Desktop.isDesktopSupported()) {
    Desktop.getDesktop().edit(file);
} else {
    // dunno, up to you to handle this
}

ファイルが存在することを確認してください。これを指摘してくれたAndreas_Dに感謝します。

21
whiskeysierra

(メモ帳で「myfile.txt」を開くと仮定します:)

ProcessBuilder pb = new ProcessBuilder("Notepad.exe", "myfile.txt");
pb.start();
10
Hal

Windowsプログラムnotepad.exeを起動したい場合は、 exec 関数を探しています。あなたはおそらく次のようなものを呼びたいでしょう:

Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\\path\\to\\notepad.exe C:\\path\\to\\file.txt");

たとえば、私のマシンでは、メモ帳はC:\Windows\notepad.exeにあります。

Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\\Windows\\notepad.exe C:\\test.txt");

これにより、test.txtファイルを編集用に開いた状態でメモ帳が開きます。

実行元の作業ディレクトリであるexecに3番目のパラメータを指定することもできることに注意してください。したがって、プログラムの作業ディレクトリに関連して保存されているテキストファイルを起動できます。

5
Stephen
String fileName = "C:\\Users\\Riyasam\\Documents\\NetBeansProjects\\Student Project\\src\\studentproject\\resources\\RealWorld.chm";
        String[] commands = {"cmd", "/c", fileName};
        try {
            Runtime.getRuntime().exec(commands);
//Runtime.getRuntime().exec("C:\\Users\\Riyasam\\Documents\\NetBeansProjects\\SwingTest\\src\\Test\\RealWorld.chm");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
2
Riyasam

IDE(Eclipse)では、 "C:\ path\to\notepad.exe C:\ path\to\file.txt"について比較します。したがって、私は次のものを使用しました。私と私のIDE幸せ:o)を維持するこれが他の人の助けになることを願っています。

String fpath;
fPath =System.getProperty("Java.io.tmpdir")+"filename1" +getDateTime()+".txt";
//SA - Below launches the generated file, via Explorer then delete the file "fPath"
       try { 
        Runtime runtime = Runtime.getRuntime();         
        Process process = runtime.exec("Explorer " + fPath);

Thread.sleep(500); //lets give the OS some time to open the file before deleting

    boolean success = (new File(fPath)).delete();
    if (!success) {
        System.out.println("failed to delete file :"+fPath);
        // Deletion failed
    }

} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace(); 
}
2
mark

[〜#〜] swt [〜#〜] を使用すると、任意のファイルを起動できます。Windowsでテキストのダブルクリックをエミュレートする場合は、プレーンなJREだけでは不可能です。 SWTなどのネイティブライブラリを使用し、次のコードを使用してファイルを開くことができます。

    org.Eclipse.swt.program.Program.launch("c:\path\to\file.txt")

サードパーティのライブラリを使用したくない場合は、notepad.exeがどこにあるか(またはPATHに表示されているか)を知っておく必要があります。

    runtime.exec("notepad.exe c:\path\to\file.txt");

Apache common-exec は、外部プロセスの実行を処理するための優れたライブラリです。

更新:あなたの質問に対するより完全な答えが見つかります ここ

2
Mohsen

コマンドラインで次のコマンドを使用してメモ帳を起動すると、これを最も効果的に行うことができます:start notepad

String[] startNotePadWithoutAdminPermissions = new String[] {"CMD.EXE", "/C", "start" "notepad" };

文字列コマンドの配列を保存し、execでパラメータのように指定します

Process runtimeProcess = Runtime.getRuntime().exec(startNotepadAdmin2);
runtimeProcess.waitFor();
0
Seda