问题标签 [apache-commons-exec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1072 浏览

java - 使用 Apache Commons Exec 运行进程时从控制台获取所有输出数据

问题是......我正在使用类库运行一个DefaultExecutor进程org.apache.commons.exec。像这样:

我需要使用另一个线程“在运行中”获取该输出,以将其记录到其他地方。实现这一目标的最佳方法是什么?

0 投票
4 回答
4464 浏览

java - 使用 Java 在 Windows 上“杀死进程树”

我有一个 Java webstart 进程,它是 Windows 批处理脚本的一部分。在这种情况下,我在批处理脚本中使用 javaws 命令。此匹配脚本 (start.bat) 使用“apache commons exec”以编程方式调用。在某些情况下,javaws 调用的 java 进程挂起,我必须从批处理脚本 start.bat 开始杀死整个进程线程。是否有通过 apache commons exec 杀死整个进程树的编程方式?

我试过使用“execWatchdog.destroyProcess();” 在“start.bat”脚本上。但是,它只会杀死 start.bat 进程,而不是整个进程树。

有没有办法通过 apache-commons-exec 或类似代码杀死整个进程树?

我已经看到了这个问题Performing equivalent of "Kill Process Tree" in c++ on windows that perform an equivalent task in c++。我想知道是否有人实现了通过 JNI 调用 Windows 本机系统调用。

0 投票
1 回答
2150 浏览

java - 来自 Apache Commons Exec 的进程对象

我正在使用 Apache Commons Exec jar 来创建进程。但是,我想控制正在调用的进程的进程 ID。

有没有办法从 Apache Commons Exec api 获取“进程”对象?我没有处理任何返回“Process 类”的公共方法。

0 投票
0 回答
2069 浏览

java - Apache commons exec 运行交互式终端应用程序

首先,我想说我阅读了有关 apache commons exec 的所有其他线程。我有一个基于终端的可执行文件。运行时,它会提示用户从命令行输入一些输入。我需要从我的 java 程序中运行这个程序并向程序提供一些命令。我使用apache commons exec。这是我到目前为止所拥有的:

这行不通。我的程序一启动它就会崩溃:

我还尝试使用 pipedinputstream 作为此处->使用 Apache Commons Exec 为命令提供多个输入并提取输出时遇到问题:

有了这个,它会挂到第一个提示!好像 flush() 没有效果。终端程序永远不会得到任何东西。

我也尝试过这个想法:如何将字符串参数传递给使用 Apache Commons Exec 启动的可执行文件?

如果我在启动 exec 之前在 ByteArrayInputStream 中写入所有内容,那么它可以工作。如果我启动 exec 然后尝试写一些东西,那么我会再次遇到第一个错误。

任何帮助将不胜感激。

只是为了完整性(我没有写这个,我不记得我是从哪里得到的)。它用于将输出重定向到 jTextArea:

}

0 投票
1 回答
7242 浏览

java - 使用进程构建器或 apache commons exec 执行外部程序

我需要执行一个外部应用程序,它返回大数据(需要 2 多个小时才能完成)n 并持续输出数据。

我需要做的是异步执行这个程序并将输出捕获到一个文件中。我尝试使用 java process builder,但它似乎只在程序退出或强制终止时才会挂起并返回输出。

我尝试使用进程构建器并创建了一个新线程来捕获输出,但它仍然没有帮助。

然后我阅读了有关 apache commons exec 的信息并尝试了相同的操作。但是,这似乎也需要很长时间并返回不同的错误代码(对于相同的输入)

任何帮助或工作示例都非常有帮助

0 投票
1 回答
128 浏览

java - 不同的输出——在命令行中运行 mathtext 以及使用 apache-commons-exec 从 java 程序执行命令时

我正在尝试使用 apache-commons-exec 从 java 程序运行 mathtext。问题是当我从 java 程序运行相同的命令和通过 shell 运行它时,我得到不同的输出。所以如果在shell中像这样运行mathtext:

在外壳中,我得到了完美的 png,但是当我使用 apache-commons-exec 运行相同的东西时

我得到了图像,不是方程,而是原始的 TeX 字符串:(

有人可以帮我解决这个问题吗?我想得到确切的输出。谢谢。

0 投票
0 回答
289 浏览

java - 如何检测Java中经过的进程时间,不包括任何进程一直在休眠的时间

我正在开发一个 Java 程序,它启动一个子进程,通过标准输出接收数据并执行一些计算,这个过程会重复。我在一台超级计算机上运行这个程序,它使用与 Torque 相关的 PBS,它具有一些特殊的调度功能,可以定期挂起作业,以最大限度地提高系统利用率。

我在执行过程中遇到的一个问题是我的子进程神秘地挂起(原因目前未知),导致 Java 等待永远不会到达的响应。我想做的是监视这个进程并强制执行时间截止,即,如果进程运行了不寻常的时间,则死亡并抛出某种错误,让我知道发生了这种情况。

通常,我会使用 Apache commons exec watchdog 来执行此操作。但我担心这项工作暂停的任何时间都会导致这个截止(假设它使用开始和结束 System.currentTimeMillis() 之间的差异)。Apache commons exec watchdog 会因此受到影响吗?有没有办法在经过时间计算中排除任何暂停时间?

0 投票
1 回答
1201 浏览

jakarta-ee - 手动创建 SOAP 消息?

我的目标是建立一个通用的网络服务。在这种情况下,“通用”是指,一个人应该能够在输入上运行任意序列的工具(比如说一个文件)。这些工具是安装在服务器上的编译程序。

WSDL我的想法是在中央文件中指定每个工具。WSDL解析该文件,并为文件中包含的每个工具创建WSDL一个单独的文件,该文件Service Class通过 apache commons exec 执行相应的工具。

那么是否可以手动创建一个SOAP Message工具序列,一个想要在输入上执行的工具,被指定?然后SOAP Message应该对其进行解析并Service Classes启动相应的。

我不得不说我对Web Service编程完全陌生,我很感激任何建议。以上只是一个想法,我愿意接受任何更好的建议;)

问候,

0 投票
2 回答
3125 浏览

java - 使用 Apache Commons exec 时遇到问题


我试图使用 Apache commons 来运行脚本,并且从终端运行的脚本看起来输出类似于以下的数据——
编辑——编辑以按照建议引入 waitFor。

预计会出现分段错误,因为这就是二进制ictest(第三方)的工作方式。

现在,当我尝试使用 Apache Commons exec 通过我的应用程序执行相同的脚本时,它似乎只打印错误而不是输出。我尝试运行脚本的代码片段如下——

上述代码段返回的输出如下——

编辑 2——我尝试使用 ProcessBuilder。以下是我的代码——

使用 ProcessBuilder 的结果如下——

我认为 139 是由于分段错误,可能导致它失败。有什么建议吗?

关于我在这里做错了什么的任何指针?我如何也捕获输出?

0 投票
2 回答
3007 浏览

java - 如何使用 apache commons-exec 启动程序并立即退出?

通过使用 Apache Commons-Exec 我可以成功启动程序,但是启动程序在程序启动后暂停。

请问如何启动一个程序并立即退出,这样才不会阻塞后面的执行?

我在Win7 64位。

谢谢