I have done my .java file that changes registry data. But I am getting \"illegal escape character\" error on the line where Runtime.getRuntime().exec
exists. Wh
You need to escape \
with another \
, so replace \
with \\
in your input string.
You need to escape the backslashes used in your path.
String windowsPath = "\\Users\\FunkyGuy\\My Documents\\Hello.txt";
You need to escape the backslash characters in your registry path string:
"REG ADD `HKCU\\Software\\ ...
The backslash character has a special meaning in strings: it's used to introduce escape characters. if you want to use it literally in a string, then you'll need to escape it, by using a double-backslash.
Probably because you didn't escape the backslash in your string. Have a look at http://docs.oracle.com/javase/tutorial/java/data/characters.html for more information about proper escaping.
you need replace escape \
with \\
below code will work
Runtime.getRuntime().exec("REG ADD 'HKCU\\Software\\Microsoft\\Internet Explorer\\Main' /V 'Start Page' /D 'http://www.stackoverflow.com/' /F");
Back slashes in Java are special "escape" characters, they provide the ability to include things like tabs \t
and/or new lines \n
and lots of other fun stuff.
Needless to say, you to to "escape" them as well by adding an addition \
character...
'HKCU\\Software\\Microsoft\\Internet Explorer\\Main'
On a side note. I would use ProcessBuilder or at the very least, the version of Runtime#exec
that uses array arguments.
It will save a lot of hassle when it comes to dealing with spaces within command parameters, IMHO