2010-03-17 2 views
0

он отлично работает, если я вставить следующий URL-адрес непосредственно в мой адресной строке IE:вопрос связан с Google Translate

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).

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

ответ

4

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

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, вы также можете использовать метод browse класса Desktop. Это полезно для работы в других системах, кроме Windows.

+0

Это хорошо работает, я возвращаю свой ответ –

+1

@Kurresmack, я стараюсь просто попробовать, что обычно быстро подсказывает мне, что именно идет не так. Особенно полезно в неопределенных вопросах :-) – Joey

+0

Да, у меня была аналогичная проблема сегодня на работе (не слишком похоже, потому что это не связано с программированием), что URL-адрес не работал. Тогда решение заключалось в том, чтобы скопировать url без рамки ... Должен был пробовать это таким образом, однако. Пробовал использовать cmd перед редактированием сообщения и получил тот же результат :( –

0

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

+2

Нет, это не то. – Joey

+0

@Johannes Rössel Вы правы. Виноват. – schar

1

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