java - 一个与谷歌翻译相关的问题

标签 java

如果我将以下 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 翻译主页。

想知道哪里出了问题。

如果您能帮助我如何实现这一点(只需在 Java 程序中提供 URL,即可打开 Google 翻译结果页面),那就太好了。

非常感谢。

最佳答案

& 字符是 shell 的特殊字符。尝试引用该参数:

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

注意参数前面的空引号;它们是开始所必需的。

顺便说一句,您可以通过将其复制到命令行并观察结果来轻松尝试您的命令行是否正常工作。在您的情况下,它产生以下内容:

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的方法类(class)。这具有在 Windows 以外的其他系统上工作的好处。

关于java - 一个与谷歌翻译相关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2465482/

相关文章:

java - java中web服务不可用时如何处理异常

Java:将日期列表拆分为子列表,表示原始列表中的天数范围

java - "Should I use multiple indices in Solr?"和其他一些快速 Q

java.sql.SQLException : No data found

Java - 检查 SqlSessionFactory 是否有效

java - maven eclipse :eclipse order of source folders get lost

java - 我可以从内部类中的方法引用一个类吗?如果可以,如何引用?

JavaFX HBox 对齐

java - 为什么我在 android 中使用 webview 时出现错误?

java - S3 Java 客户端多次失败,出现 "Premature end of Content-Length delimited message body"或 "java.net.SocketException Socket closed"