问题标签 [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 投票
1 回答
913 浏览

java - commons-exec 线程安全吗?

Apache Commons Exec 是线程安全库吗?

0 投票
1 回答
3351 浏览

java - commons-exec:在系统 PATH 上执行程序?

我正在尝试执行其父文件夹存在于路径上的程序(具体而言,从 ImageMagick 转换)。因此,当我从命令行运行时convert,它会运行命令。但是,以下失败:

如果我指定转换可执行文件 () 的完整路径,C:\Program files\...则此代码有效。如果我不这样做,我会得到一个带有 exit value 的异常4

如何让 commons-exec 识别系统路径?

0 投票
2 回答
5056 浏览

java - 使用 commons-exec 流式输出?

谁能给我一个示例,说明如何流式传输执行的外部程序的输出DefaultExecutor?我没有找到任何描述如何执行此操作的文档。

我的外部进程将运行几个小时,因此仅获取所有输出数据是不可行的;它必须流式传输。

0 投票
2 回答
5230 浏览

java - commons-exec:当我调用 executor.execute(commandLine); 时挂起

我不知道为什么这是挂起的。我正在尝试从通过 commons-exec 运行的进程捕获输出,但我继续挂起。我在下面提供了一个示例程序来演示这种行为。

0 投票
5 回答
8790 浏览

java - 在 Apache Commons exec 或 ProcessBuilder 之间做出决定

我正在尝试决定是使用ProcessBuilder还是 Commons exec,

我的要求是我只是想创建一个我不关心的 stdout/stdin/stderr 的守护进程。另外,我想在时机成熟时执行 kill 以销毁此进程。

我在 Linux 上使用 Java。

我知道两者都有自己的痛苦和陷阱(例如确保使用单独的线程来吞下流可能会导致阻塞或死锁,并关闭流以免留下打开的文件)并且想知道是否有人有建议方式或其他方式以及任何好的资源可以遵循。

0 投票
1 回答
389 浏览

java - app launched from java commons-exec can't access web on win7, but launched from cmd.exe can

Running on windows7, using wkhtmltopdf to generate a pdf from our site works fine from a command prompt. Running the exact same wkhtmltopdf command from a servlet running in jetty via commons-exec results in a blank pdf.

I've turned on the accesslog valve on our site as well as installed netmon on win7, and I can clearly see that the web request to our site itself is being generated when invoked from the command prompt, but isn't being generated at all from the jetty-launched process.

I've examined the event logs with Event Viewer on win7, but I don't see any security exceptions or such that might explain the empty pdf. The fact that it is generating a pdf implies that the wkhtmltopdf executable is being invoked correctly.

Any ideas what might be causing wkhtmltopdf to not have http access?

0 投票
2 回答
6443 浏览

java - 如何将字符串参数传递给使用 Apache Commons Exec 启动的可执行文件?

我需要将一个文本参数传递给使用 Apache Commons Exec 启动的命令的标准输入(出于好奇,命令是 gpg,参数是密钥库的密码;gpg 没有明确提供密码的参数,只有从标准输入接受它)。

另外,我需要它来支持 Linux 和 Windows。

在一个shell脚本中我会做

或者

但是 type 在 Windows 上不起作用,因为它不是可执行文件,而是内置在命令解释 (cmd.exe) 中的命令。

代码不起作用(由于上述原因)如下。为此生成一个完整的外壳太难看了,我一直在寻找更优雅的解决方案。不幸的是,BouncyCastle 库和 PGP 之间存在一些不兼容问题,因此我无法在(非常短的)时间内使用完全编程的解决方案。

提前致谢。

0 投票
5 回答
4110 浏览

java - Apache Commons Exec 为包含空格的参数生成太多引号?

Apache Commons Exec 中存在错误,或者我使用的 API 错误,但是当我使用CommandLine该类添加包含空格的参数时,会添加一些引号,然后是给定参数的一部分。

例如:当我调用时,java "what version"我得到java.lang.NoClassDefFoundError: what version,当我调用java "\"what version\""(包含转义引号,这是命令行参数本身的一部分)时,我得到java.lang.NoClassDefFoundError: "what version".

所以下面的测试失败了,因为你可以在最后一行看到,Apache Exec 正在生成后一个版本,而它应该生成第一个版本:

现在我想知道:

  • 这是一个错误吗?
  • 如果是这样:有没有办法绕过这个问题(解决方法)?
  • 如果不是:我做错了什么?

编辑:我正在尝试执行一个我认为最少人会在他们的机器上使用的过程。所以我java改用这个命令,因为这个命令应该在人们开发 Java 的所有机器上都可用。我的观点是错误的运行时参数被传递给外部进程,包含转义引号,这是不应该的。

编辑:我将此作为Jira的 commons exec 提交的错误。

0 投票
1 回答
563 浏览

apache-commons-exec - 使用 commons-exec 的一系列命令

我是 apache commons-exec 的新手。

有没有一种方法可以将一系列命令发送到远程机器而无需每次都进行身份验证?

想做这个订单:

但显然 commons-exec 需要这个:

任何想法?

0 投票
1 回答
249 浏览

java - apache.commons.exec - 执行进程抛出的吞下异常?

我使用 Apache 的 commons exec 库从我的 java 代码在 windows 上运行另一个应用程序。那个其他应用程序(tshark)可能会抛出一个丑陋的异常,使窗口弹出“一个未处理的 win32 异常发生在 ...”窗口。有没有办法在我的java代码中吞下那个异常,所以用户不会遇到那个窗口?