apache-commons-exec相关内容
我正在我的 Java 程序(在 Linux 上)中启动一个外部进程,我需要能够向它发送一个 SIGTERM 信号而不是 exec.getWatchdog().destroyProcess() 的 SIGKILL发送.有没有办法可以更优雅地停止以 commons-exec 启动的 unix 进程?或者我可以获得 PID 以便我可以自己运行适当的 kill 命令? 解决方案 好吧,Common
..
我需要通过管道将文本参数传递给使用 Apache Commons Exec 启动的命令的 stdin(出于好奇,命令是 gpg,参数是密钥库的密码;gpg 没有提供密码的参数明确地,只从标准输入接受它). 此外,我需要它来支持 Linux 和 Windows. 在shell脚本中我会做 cat mypassphrase|gpg --passphrase-fd 或 输入 mypas
..
我在这里不知所措.我确信这很简单,而且我对 java 和流的理解很可能有很大的漏洞.我认为有太多的类让我有点不知所措,试图通过 API 找出我想要何时以及如何使用大量输入/输出流. 我刚刚了解到 apache 公共库的存在(自学 java 失败),目前我正在尝试将我的一些 Runtime.getRuntime().exec 转换为使用公共 - exec.它已经修复了一些每 6 个月一次这个问
..
我尝试通过apache-commons-exec捕获python进程输出.但是看起来它不会打印输出,只有在python进程完成后才显示输出. 这是我的Java代码 CommandLine cmd = CommandLine.parse("/Users/jzhang/anaconda/bin/python"); cmd.addArgument("/Users/jzhang/a.py");
..
我正在尝试在Java应用程序GUI中动态运行Java代码.我尝试了以下代码: Sring tempfile="java -classpath "+wrkdir+"/bin "+runfile; CommandLine cmdLine = CommandLine.parse(tempfile); DefaultExecut
..
我正在使用Apache Commons Exec jar创建进程.但是,我想控制正在调用的进程的进程ID. 是否可以从Apache Commons Exec api获取"Process"对象?我没有对返回"Process类"的任何公共方法进行罚款. 解决方案 请参见 http://commons.apache.org/exec/apidocs/index.html Interf
..
这就是我在做什么: import org.apache.commons.exec.*; String cmd = "/bin/sh -c \"echo test\""; new DefaultExecutor().execute(CommandLine.parse(cmd)); 这是输出: /bin/sh: echo test: command not found 我在做什么错
..
谁能给我一个例子,说明如何流式传输用DefaultExecutor执行的外部程序的输出?我找不到任何描述该操作方法的文档. 我的外部过程将运行几个小时,因此仅获取所有输出数据是不可行的;它必须流式传输. 解决方案 注意:此解决方案是同步的,因此不会流式传输.您将需要在单独的线程中进行读取,或者使用execute命令的异步版本. private InputStream getSt
..
我正在我的Java程序中(在Linux上)启动一个外部进程,我需要能够向其发送SIGTERM信号,而不是exec.getWatchdog().destroyProcess()正在发送的SIGKILL.有没有一种方法可以让我更优雅地停止以commons-exec启动的Unix进程?还是我可以获取PID,以便我自己可以运行适当的kill命令? 解决方案 Commons Exec依赖Java P
..
我需要执行一个外部应用程序,该应用程序将返回大数据(需要2个多小时才能完成),并连续输出数据. 我需要做的是异步执行该程序并将输出捕获到文件中. 我尝试使用Java流程生成器,但是它似乎仅在程序退出或强制终止时才挂起并返回输出. 我尝试使用流程生成器并修改了一个新线程来捕获输出,但是仍然没有帮助. 然后,我了解了有关Apache Commons exec的信息,并尝试了相同的操作
..
我有一个Java Webstart进程,该进程是Windows批处理脚本的一部分.在这种情况下,我在批处理脚本中使用javaws命令. 使用"apache commons exec"以编程方式调用此匹配脚本(start.bat).在某些情况下,javaws调用的java进程挂起,我必须从批处理脚本start.bat开始杀死整个进程线程. 有没有一种编程的方法可以通过apache commons e
..
Apache Commons Exec中有错误,或者我使用的API错误,但是当我使用CommandLine类添加包含空格的参数时,会添加一些引号,然后将其作为该参数的一部分给出了. 例如:当我调用java "what version"时,我会得到java.lang.NoClassDefFoundError: what version,而当我调用java "\"what version\""(
..
我不知道为什么这挂了.我正在尝试捕获来自通过commons-exec运行的进程的输出,并且我继续挂起.我在下面提供了一个示例程序来演示此行为. import java.io.DataInputStream; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream
..
我在这里结束了我的智慧。我确信这很简单,我很可能在理解java和流时遇到很大漏洞。我认为有这么多的课程让我有点不知所措,试图通过API来弄清楚我何时以及如何使用大量的输入/输出流。 我刚刚了解了apache commons库的存在(自学java失败),我正在尝试将我的一些Runtime.getRuntime()。exec转换为使用commons - exec。已经修复了每6个月一次的问题,然
..
我需要将一个文本参数传递给使用Apache Commons Exec启动的命令的stdin(对于好奇,命令是gpg,参数是密钥库的密码; gpg没有提供密码的参数明确地,只从stdin接受它。) 此外,我需要它来支持Linux和Windows。 在shell脚本中我会做 cat mypassphrase | gpg --passphrase-fd 或
..
我正在尝试在路径上执行其父文件夹存在的程序(从ImageMagick转换为具体)。当我从命令行运行 convert 时,它会运行命令。然而,以下内容失败: String command =“convert” CommandLine commandLine = CommandLine.parse(command) ; commandLine.addArgument(...) ...
..
我正在编写一个需要使用Apache Commons Exec库的外部命令行应用程序的Java应用程序。我需要运行的应用程序有相当长的加载时间,所以最好保持一个实例,而不是每次创建一个新的进程。应用程序的工作方式非常简单。一旦开始,它等待一些新的输入,并生成一些数据作为输出,这两个都使用应用程序的标准I / O。 所以想法是执行CommandLine,然后使用PumpStreamHandler
..