当前位置: 首页 > 面试题库 >

在Java Runtime Exec中使用重定向运算符

冉高寒
2023-03-14
问题内容

我有在Windows XP的JVM中与Runtime.exec()一起使用的String。

String cmd = encoderFull + " " + "-i " + originalFull + " "+ "-bitrate" + " " + bitrateVBR[i] + " " + "-bvhq"+ " " + "-avi " + outputFull + " " + "2>&1" + " " + "1>"+ outputFile + ".txt";

不幸的是,‘2>&1 1> output.txt’无法正常工作。其余的还可以。有没有一种使用命令的方式来创建此文件?

再见,大卫


问题答案:

基本上,不-Runtime.exec()不支持您要执行的操作。

请注意,Runtime.exec 不是 外壳程序-
在您显然使用的exec(String)情况下,它将令牌化字符串(使用空格作为分隔符),并尝试将第一个令牌作为程序执行,其余令牌作为该程序的参数。

因此,在您的情况下,重定向运算符将作为参数发送到以’encoderFull’变量命名的应用程序-外壳程序将不会像您期望的那样解释它们,因为没有外壳程序。

据我所知,您有两种选择:

  1. 编写一个批处理文件(对于Windows)或Shell脚本(对于* nix),该文件将执行您的应用程序并执行重定向。然后使用Runtime.exec(),以批处理文件/ shell脚本为参数,调用外壳程序(cmd或sh或您拥有什么)

  2. 从Runtime.exec创建的进程中读取输出流,然后使用java io将内容写入相应的文件

我强烈建议#1推荐#2

在继续之前,您可能还应该阅读有关“何时Runtime.exec()不会-
导航与Runtime.exec()方法相关的陷阱”的文章



 类似资料:
  • 我想将我的url重定向到http://localhost:8080/clickbuy/product/details到http://localhost:8080/clickbuy/home。 我已经定义了header.jsp,并将其包含在所有页面中。当我从其他任何地方单击home link url时,从当前url添加/home,因此显示404错误。 如何在ModelAndView返回类型方法中使用

  • 我在C#中定义了一个类(称为类A),并为它重载了一些算术运算符。让我们关注加法运算符(尽管我希望其他运算符的行为类似)。我已经设置了类A,这样我就可以向它添加标量(即单个Double值),我可以将它添加到标量中,或者我可以将A的两个实例一起添加。 所以在C#中,我用三个不同的签名重载了“”运算符。显式签名是: 一个双人间 < li >双A 答:答:答 当我在PowerShell中使用该类时,它只识

  • 问题内容: 我正在处理的应用程序包含各种状态(使用ui-router),其中某些状态要求您登录,而其他状态则公开可用。 我创建了一种方法,该方法可以有效地检查用户是否已登录,当前遇到的问题实际上是在必要时重定向到我们的登录页面。应该注意的是,登录页面当前未放置在AngularJS应用中。 console.log会正确显示预期的URL。之后的那一行,我几乎尝试了从$ window.open到wind

  • 问题内容: 谁能告诉我为什么我的重定向助手无法按我期望的方式工作?我正在尝试重定向到我的主控制器的index方法,但是当它路由到时需要我。这对任何人有意义吗?我将配置中的索引页设置为空白,尽管我不认为这是问题所在。有人对如何解决此问题有建议吗?提前致谢! 控制器 : .htaccess : 问题答案: URL助手 代码点火器中的redirect语句使用重定向标头语句将用户发送到指定的网页。 该语句

  • 问题内容: 我正在尝试使用以下方法重定向到另一条路线: 但是由于某种原因,它不起作用。我使用jQuery- UI做了一个自动完成的小部件,一旦用户选择了一个选项,我就从作用域调用了一个函数。我调试了它,然后它进入了函数,但它从未重定向到其他路由。当我按下一个键时,它只会改变路线。 我认为这很奇怪,但是我还没有弄清楚如何解决这个问题。我用了 它可以工作,但我想使用该功能。 有人知道为什么会这样吗?

  • 我正在使用Asgard CMS,这是一个基于Laravel 5.1构建的模块化CMS,并且在我创建的特定模块中面临上述问题。 整个站点都有很多post请求和重定向,这很好,但是当涉及到配置文件模块时,我遇到了这个问题。 我将一个编辑请求发布到一个路由,在完成一些工作后,我重定向回路由。当我重定向时,它会显示一个空白页面,上面写着“重定向到”http://www...“首先写入,然后在2-3秒后重定