Символ &
является специальным символом для оболочки. Попробуйте вместо этого привести аргумент:
Process q=Runtime.getRuntime().exec(
"cmd /c start \"\" \"http://translate.google.cn/translate?hl=zh-CN&sl=zh-CN&tl=en&u=http%3A%2F%2Fnews.baidu.com%2Fns%3Fword%3D%25B0%25C2%25B0%25CD%25C2%25ED\"");
Обратите внимание на пустые кавычки перед аргументом; они необходимы для start
.
Кстати, вы можете легко проверить, работает ли ваша командная строка вообще, скопировав ее в командную строку и просмотрев результат. В вашем случае это произвело следующее:
H:>cmd /c start http://translate.google.cn/translate?hl=zh-CN&sl=zh-CN&tl=en&u=http%3A%2F%2Fnews.baidu.com%2Fns%3Fword%3D%25B0%25C2%25B0%25CD%25C2%25ED
'sl' is not recognized as an internal or external command,
operable program or batch file.
'tl' is not recognized as an internal or external command,
operable program or batch file.
'u' is not recognized as an internal or external command,
operable program or batch file.
, который дает довольно хорошие подсказки о том, что здесь не так.
Однако, если вы используете Java 6, вы также можете использовать метод обзора класса Desktop . Это дает преимущество работы на других системах, кроме Windows.