0

重複の可能性:
Java を使用した Windows レジストリの読み取り/書き込み

このcmdコードをJavaで実行しようとしています。

REG ADD "HKCU\SOFTWARE\MICROSOFT\INTERNET EXPLORER\MAIN" /V "START PAGE" /D "http://www.google.com/" /F

これはbatファイルで完全に機能します。私はそれをJavaで動作させようとしました

import java.util.*;

private static void addToWin( File f, String param ) throws IOException {
String name = generateName(f);
String cmd = "REG ADD HKCU\\Software\\Microsoft\\Internet Explorer\\Main /V Start Page /D http://www.google.com/ /F";
Runtime.getRuntime().exec(cmd);
}

しかし、うまくいきませんでした。どうすればこれを機能させることができますか?

4

4 に答える 4

4

はい、どうぞ:

ProcessBuilder pb = new ProcessBuilder(new String[]{"REG", "ADD", "HKCU\\Software\\Microsoft\\Internet Explorer\\Main", "/v", "Start Page", "/d", "\"http://www.google.com/\"", "/f"});
pb.start();
于 2012-10-15T20:40:27.320 に答える
1

引用符がありません\"

そのため、コマンドにはスペースが含まれているため、コマンドが誤って解釈されます。引用は不可欠です!

シンプルなものを追加してみてください

 System.err.println(cmd);

(またはお気に入りのロガーを使用してください)。欠落している引用符に注意してください。印刷された文字列が実行したいコマンドと同一でない場合、それが機能しないのは当然のことです。

于 2012-10-15T20:40:13.857 に答える
1

スペースを含むコマンド ライン引数を引用符で囲む必要があります。\\Internet Explorer\\

于 2012-10-15T20:38:05.450 に答える
0

Windows レジストリとの間で READ/WRITE を実行する場合は、この質問をご覧になることをお勧めします。

于 2012-10-15T20:30:19.840 に答える