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

Java 运行时的exec()方法没有重定向输出

丌官飞章
2023-03-14
问题内容
Process p = Runtime.getRuntime().exec("sh somescript.sh &> out.txt");

我正在使用Java运行这个命令。脚本正在运行,但它没有将流重定向到文件。此外,文件out.txt没有被创建。

如果我在shell上运行这个脚本,它运行得很好。

有什么想法吗?


问题答案:

你需要使用ProcessBuilder重定向。

ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh");
builder.redirectOutput(new File("out.txt"));
builder.redirectError(new File("out.txt"));
Process p = builder.start(); // may throw IOException


 类似资料:
  • 问题内容: 我有一个程序Test.java: 应该将HelloWorld1和HelloWorld2打印到文件text.txt中。但是,当我查看文件时,只能看到HelloWorld1。 HelloWorld2去了哪里?它消失在稀薄的空气中了吗? 可以说我也想将HelloWorld2重定向到test.txt。我不能仅在命令中添加“ >> test.txt”,因为会出现文件已打开错误。那么我该怎么做呢?

  • 由于某些原因,在运行此代码时,我没有得到输出。我不明白为什么。我肯定这是基本的原因,但在我看来一切都是正确的。 下面是输出:

  • 我试图运行一个测试来比较用户输入的单词量是否与指定的预期长度(4)相同,但出于某种原因,我总是得到错误:“没有可运行的方法”,而显然有一个?有人能给我解释一下这是怎么回事吗?

  • 问题内容: 我有在Windows XP的JVM中与Runtime.exec()一起使用的String。 不幸的是,‘2>&1 1> output.txt’无法正常工作。其余的还可以。有没有一种使用命令的方式来创建此文件? 再见,大卫 问题答案: 基本上,不-Runtime.exec()不支持您要执行的操作。 请注意,Runtime.exec 不是 外壳程序- 在您显然使用的exec(String)

  • 问题内容: 我试图在Linux命令提示符下运行JUnit,其中包含必要的JARS(hamcrest- core-1.3.jar和junit.jar)和类文件,并且正在使用以下命令来运行JUnit: TestJunit类: TestRunner: 我在运行此时遇到以下异常 问题答案: 如果您使用 JUnit 4.4核心运行 程序执行一个no的类,则将得到此异常。 请查阅链接以获取更多信息。 由vip

  • 我需要检查为什么exec函数停止我的php脚本。 我在HTTP查询中调用了“exec”函数中的bat文件(但我遇到了passthru、system和proc_open的问题),2分钟后我得到了一个错误代码500(没有详细信息)。但是我的bat文件总是在后台运行(我可以看到创建的文件…)我是这样使用它的: 在$输出中我什么都得不到,在phperror_log什么都没有...我添加了以下参数: 同样的