草庐IT

java - 读取 java exec 的输出

您好,我有一些关于java的问题。这是我的代码:publicstaticvoidmain(String[]args)throwsException{Processpr=Runtime.getRuntime().exec("java-version");BufferedReaderin=newBufferedReader(newInputStreamReader(pr.getInputStream()));Stringline;while((line=in.readLine())!=null){System.out.println(line);}pr.waitFor();System.o

java - 为什么 Runtime.exec(String) 对某些但不是所有命令都有效?

当我尝试运行Runtime.exec(String)时,某些命令可以工作,而其他命令会执行但失败或执行与我的终端不同的操作。下面是一个独立的测试用例来演示效果:publicclassExecTest{staticvoidexec(Stringcmd)throwsException{Processp=Runtime.getRuntime().exec(cmd);inti;while((i=p.getInputStream().read())!=-1){System.out.write(i);}while((i=p.getErrorStream().read())!=-1){System.

java - 为什么 Runtime.exec(String) 对某些但不是所有命令都有效?

当我尝试运行Runtime.exec(String)时,某些命令可以工作,而其他命令会执行但失败或执行与我的终端不同的操作。下面是一个独立的测试用例来演示效果:publicclassExecTest{staticvoidexec(Stringcmd)throwsException{Processp=Runtime.getRuntime().exec(cmd);inti;while((i=p.getInputStream().read())!=-1){System.out.write(i);}while((i=p.getErrorStream().read())!=-1){System.

java - 在 Java 中调用和接收 Python 脚本的输出?

从Java执行Python脚本并接收该脚本的输出的最简单方法是什么?我寻找过不同的库,例如Jepp或Jython,但大多数都显得过时了。库的另一个问题是,如果我使用库,我需要能够轻松地将库包含在源代码中(尽管我不需要为库本身提供源代码)。因此,最简单/最有效的方法是简单地执行诸如使用runtime.exec调用脚本之类的操作,然后以某种方式捕获打印输出吗?或者,即使这对我来说很痛苦,我也可以将Python脚本输出到一个临时文本文件,然后用Java读取该文件。注意:Java和Python之间的实际通信不是我要解决的问题的要求。然而,这是我能想到的轻松执行需要完成的事情的唯一方法。

java - 在 Java 中调用和接收 Python 脚本的输出?

从Java执行Python脚本并接收该脚本的输出的最简单方法是什么?我寻找过不同的库,例如Jepp或Jython,但大多数都显得过时了。库的另一个问题是,如果我使用库,我需要能够轻松地将库包含在源代码中(尽管我不需要为库本身提供源代码)。因此,最简单/最有效的方法是简单地执行诸如使用runtime.exec调用脚本之类的操作,然后以某种方式捕获打印输出吗?或者,即使这对我来说很痛苦,我也可以将Python脚本输出到一个临时文本文件,然后用Java读取该文件。注意:Java和Python之间的实际通信不是我要解决的问题的要求。然而,这是我能想到的轻松执行需要完成的事情的唯一方法。

java - 如何从 Java 程序启动完全独立的进程?

我正在开发一个用Java编写的程序,对于某些操作,它使用用户配置的命令行启动外部程序。目前它使用Runtime.exec()并且不保留Process引用(启动的程序是文本编辑器或存档实用程序,因此不需要系统/输出/错误流)。这有一个小问题,当Java程序退出时,它并没有真正退出,直到所有启动的程序都退出。如果启动的程序完全独立于启动它们的JVM,我会非常喜欢它。目标操作系统有多种,Windows、Linux和Mac是最少的,但任何带有JVM的GUI系统都是真正需要的(因此实际命令行的用户可配置性)。有谁知道如何让启动的程序完全独立于JVM执行?根据评论进行编辑启动代码如下。代码可能会启

java - 如何从 Java 程序启动完全独立的进程?

我正在开发一个用Java编写的程序,对于某些操作,它使用用户配置的命令行启动外部程序。目前它使用Runtime.exec()并且不保留Process引用(启动的程序是文本编辑器或存档实用程序,因此不需要系统/输出/错误流)。这有一个小问题,当Java程序退出时,它并没有真正退出,直到所有启动的程序都退出。如果启动的程序完全独立于启动它们的JVM,我会非常喜欢它。目标操作系统有多种,Windows、Linux和Mac是最少的,但任何带有JVM的GUI系统都是真正需要的(因此实际命令行的用户可配置性)。有谁知道如何让启动的程序完全独立于JVM执行?根据评论进行编辑启动代码如下。代码可能会启

java - 调用 Runtime.exec 时捕获标准输出

当在客户端机器上遇到网络问题时,我希望能够运行一些命令行并将结果通过电子邮件发送给自己。我发现Runtime.exec将允许我执行任意命令,但将结果收集到字符串中更有趣。我意识到我可以将输出重定向到一个文件,然后从该文件中读取,但我的感觉告诉我有一种更优雅的方法。建议? 最佳答案 您需要同时捕获过程中的stdout和stderr。然后,您可以将标准输出写入文件/邮件或类似文件。见thisarticle有关更多信息,请特别注意在单独的线程中捕获stdout/err的StreamGobbler机制。这对于防止阻塞至关重要,如果您没有正确

java - 调用 Runtime.exec 时捕获标准输出

当在客户端机器上遇到网络问题时,我希望能够运行一些命令行并将结果通过电子邮件发送给自己。我发现Runtime.exec将允许我执行任意命令,但将结果收集到字符串中更有趣。我意识到我可以将输出重定向到一个文件,然后从该文件中读取,但我的感觉告诉我有一种更优雅的方法。建议? 最佳答案 您需要同时捕获过程中的stdout和stderr。然后,您可以将标准输出写入文件/邮件或类似文件。见thisarticle有关更多信息,请特别注意在单独的线程中捕获stdout/err的StreamGobbler机制。这对于防止阻塞至关重要,如果您没有正确

java - 如何解决 "java.io.IOException: error=12, Cannot allocate memory"调用 Runtime#exec()?

在我的系统上,我无法运行启动进程的简单Java应用程序。我不知道怎么解决。你能给我一些提示如何解决吗?程序是:[root@newtonsisma-acquirer]#catprova.javaimportjava.io.IOException;publicclassprova{publicstaticvoidmain(String[]args)throwsIOException{Runtime.getRuntime().exec("ls");}}结果是:[root@newtonsisma-acquirer]#javacprova.java&&java-cp.provaException