вопрос, связанный с Google Translate - PullRequest
0 голосов
/ 17 марта 2010

это прекрасно работает, если я вставлю следующий URL прямо в мою адресную строку IE:

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

переводит некоторые китайские новостные страницы на английские.

но если я назову этот адрес в программе на Java, например:

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"); 

Он вернется только на главную страницу Google переводчика.

Интересно, что там пошло не так.

и было бы здорово, если бы вы мне помогли, как это реализовать (открыв страницу результатов перевода Google, просто указав URL-адрес в программе Java).

Большое спасибо.

Ответы [ 3 ]

4 голосов
/ 17 марта 2010

Символ & является специальным символом для оболочки. Попробуйте вместо этого привести аргумент:

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.

1 голос
/ 17 марта 2010

Я бы сказал, что это потому, что оно подставлено. Попробуйте щелкнуть правой кнопкой мыши переведенную страницу и получите URL таким образом

0 голосов
/ 17 марта 2010

Мое предположение: Google может проверять пользовательский агент. Они сделали бы это, чтобы предотвратить автоматизированные программы и любые атаки DOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...