29得票4回答
使用apache-commons exec处理输出结果

我到了崩溃的边缘。我确定这是一些简单的东西,我很可能对Java和Streams有很大的理解漏洞。我认为有太多的类让我有点不知所措,试图浏览API以找出何时以及如何使用各种输入/输出流。 我刚刚了解到apache commons库的存在(自学Java失败),目前正在尝试将我的Runtime.g...

27得票6回答
在使用Apache Commons exec或ProcessBuilder时如何做出决策

我正在考虑是使用ProcessBuilder还是Commons exec, 我的要求仅仅是创建一个守护进程,我不关心其stdout/stdin/stderr。另外,我想在需要时执行kill来销毁这个进程。 我在Linux上使用Java。 我知道两者都有自己的困难和陷阱(例如确保使用单独的...

12得票2回答
如何将字符串参数传递给使用Apache Commons Exec启动的可执行文件?

我需要将一个文本参数导入到使用Apache Commons Exec启动的命令的标准输入(stdin)中(对于好奇的人,该命令是gpg,参数是密钥库的密码; gpg没有提供显式密码参数,只能从stdin接受它)。此外,我需要支持Linux和Windows。 在shell脚本中,我会这样做:c...

10得票1回答
使用PumpStreamHandler将输出和错误写入日志文件

我已经搜索了一段时间,以获取一个好的示例来将进程输出和错误流写入日志文件。我使用apache-commons exec库来执行我的进程。以下是一个代码示例,用于演示此操作:public static int executeCommand(CommandLine command, Logger ...

10得票5回答
Apache Commons Exec生成的命令参数包含空格时会产生过多的引号?

使用Apache Commons Exec时,如果我使用CommandLine类添加包含空格的参数,则会出现错误或者我使用API错误了。一些引号添加到参数中并成为参数的一部分。 例如:当我调用java "what version"时,我会得到java.lang.NoClassDefFound...

9得票3回答
使用Apache Commons Exec提供多个输入并提取输出时出现问题

我正在编写一个Java应用程序,需要使用Apache Commons Exec库来运行外部命令行应用程序。由于我需要运行的应用程序具有相当长的加载时间,因此最好保持一个实例处于活动状态,而不是每次都创建一个新进程。该应用程序的工作方式非常简单。一旦启动,它等待一些新输入并生成一些数据作为输出,...

9得票1回答
Apache Commons Exec - 有时线程无法在Linux中打开本地文件

警告 -- 问题不是缺失文件 -- 所有线程都在调用同一个脚本文件 我正在启动5-6个线程,这些线程在红帽子系统中调用本地脚本。 有时候,我会得到以下错误信息: couldn't read file "/home/leo/myScript.exp": no such file or di...

7得票3回答
优雅地终止Apache Commons Exec进程

我在我的Java程序中启动了一个外部进程(在Linux上),我需要能够发送SIGTERM信号而不是exec.getWatchdog().destroyProcess()发送的SIGKILL。是否有一种更优雅地停止使用commons-exec启动的unix进程的方法?或者我可以获取PID,以便自...