Tag: runtime.exec

在getRuntime()。exec中使用引号

我想使用字符串作为输入来调用bash。 就像是: sh -l -c “./foo” 我想从Java做到这一点。 不幸的是,当我尝试使用getRuntime().exec调用该命令时,我收到以下错误: foo”: -c: line 0: unexpected EOF while looking for matching `”‘ foo”: -c: line 1: syntax error: unexpected end of file 它似乎与我的字符串没有被EOF终止有关。 有没有办法将特定于平台的EOF插入Java字符串? 或者我应该寻找另一种方法,比如在调用“sh”之前写入临时脚本?

从java Runtime.exec读取流

我有以下代码片段: Process proc = runtime.exec(command); errorGobbler = new ErrorStreamGobbler(proc.getErrorStream(), logErrors, mdcMap); outputGobbler = new OutputStreamGobbler(proc.getInputStream(), mdcMap); executor.execute(errorGobbler); executor.execute(outputGobbler); processExitCode = proc.waitFor(); gobblers是Runnable的,它使用BufferedReader来读取执行进程的输入和错误流。 虽然这大部分时间都有效,但我偶尔会看到窗口(大约2分钟左右),我将processExitCode设为0,表示正常终止,但输入和错误流中没有任何内容 – 甚至没有任何内容表示 -的流。 就像我之前说过的那样,这种情况大部分时间都有效,但这种失败每隔一段时间就会发生 – 而且我完全感到困惑。 有任何想法吗? 碎布

从另一个java程序运行java程序

我正在研究一个简单的java程序。 它只是编译并执行另一个java程序。 我正在使用Runtime.exec()函数进行编译和运行。 编译没有问题。 但是当它运行时,如果第二个程序需要输入来从键盘读取,我不能从主进程中提供它。 我使用了getOutputStream()函数。 但它无济于事。 我会提供我的代码。 public class sam { public static void main(String[] args) throws Exception { try { Process p = Runtime.getRuntime().exec(“javac sam2.java”); Process p2 = Runtime.getRuntime().exec(“java sam2″); BufferedReader in = new BufferedReader( new InputStreamReader(p2.getInputStream())); OutputStream out = p.getOutputStream(); String line = null; line = in.readLine(); System.out.println(line); input=input+”\n”; out.write(input.getBytes()); p.wait(10000); out.flush(); […]

读取java exec的输出

你好我有一些关于java的问题。 这是我的代码: public static void main(String[] args) throws Exception { Process pr = Runtime.getRuntime().exec(“java -version”); BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line; while ((line = in.readLine()) != null) { System.out.println(line); } pr.waitFor(); System.out.println(“ok!”); in.close(); System.exit(0); } 在那个代码我试图得到一个java版本命令执行是好的,但我无法读取输出它只是返回null。 为什么?