问题标签 [processbuilder]

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 投票
0 回答
292 浏览

java - 我可以使用流程构建器合并两个不同的流程吗?

这个问题与我之前的问题有关。

如何使用 Cygwin 在 Java 中运行 shell 脚本

当我运行命令时遇到错误。我可以为此使用两个不同的过程吗?

例如:

进程 p;

对于D:cygwin\bin\Test> 和另一个过程

进程 p1;

为了:sh app.sh AK-RD 02.20 D:\cygwin\bin\Test_files

并想合并两个。那可能吗?

我正在尝试使用 cygwin 和 Java 运行 shell 脚本,因为我希望这是完整的命令。

D:cygwin\bin\Test>** *sh app.sh AK-RD 02.20 D:\cygwin\bin\Test_files*

所以我想做两件不同的事情——我可以把这两者结合成一个步骤吗?

0 投票
2 回答
2929 浏览

java - 如何使用进程构建器运行两个不同的命令

抱歉,如果我再次重新打开相同的问题。我想运行两个命令

  1. D:\cygwin\bin\测试

  2. sh app.sh AK-RD 02.20 D:\cygwin\bin\Test_files

以上是我想在同一个命令提示符下运行的两个命令意味着我必须进入D:\cygwin\bin\Test文件夹并在同一个提示符下要运行下一个命令

sh app.sh AK-RD 02.20 D:\cygwin\bin\Test_files

该命令看起来像,

命令:- D:\cygwin\bin\Test>sh app.sh AK-RD 02.20 D:\cygwin\bin\Test_files

如何在 java 中使用 process Builder 来做到这一点。或者有没有其他方法可以做到这一点。

这对我没有帮助,即使我更改probuilder.directory了代码。我正进入(状态

0 投票
1 回答
3484 浏览

java - 使用 Java ProcessBuilder 执行“echo”不会插入变量(输出字符串“$PATH”)

我想回显 PATH 变量,目标是从 Java ProcessBuilder 获得与echo $PATH在终端中运行相同的输出。但是,当它执行时,输出实际上$PATH是 PATH 变量的值。我想知道 ProcessBuilder 是否正在逃避 $ 并且有防止这种情况的技巧吗?

这是我正在谈论的输出字符串“$PATH”的代码示例:

一些额外的上下文:

我正在尝试模拟sort我的一个单元测试中找不到的命令。我正在使用这个hack/trick 来更改我的 PATH 并通过检查结果processBuilder.environment()并确定传递给进程的 PATH 变量不应该允许查找排序(我已经尝试过空字符串和随机路径)。我想看看外壳是否在做任何有趣的事情并修复我试图破坏的 PATH 。

0 投票
2 回答
6790 浏览

java - Java 的 ProcessBuilder 在哪里执行命令?

当我使用 执行命令时ProcessBuilder,它如何知道在哪里查找该命令?使用这个 hack/trick我已经将我的 PATH 变量(通过检查验证processBuilder.environment())修改为坏的(空的,工作目录等),但 ProcessBuilder 仍然可以执行排序、回显、bash 等。这是怎么做到的?!

注意:我的特定开发环境是 OSX,但此代码也将在 Red Hat Enterprise Linux 上运行。

0 投票
2 回答
1806 浏览

java - 如何在进程构建器中编写命令

我正在使用 cygwin 和 java 运行 shell 脚本。

当我对参数进行硬编码时,我的脚本正在运行。我想通过文本框值传递这些参数。

这该怎么做。

ProcessBuilder pb =new ProcessBuilder(Arrays.toString(cmmd));

或者有没有其他方法可以做到这一点。

0 投票
1 回答
7030 浏览

java - 在 Java 5/6 中重定向 ProcessBuilder 的输出?

我正在寻找一种方法来重定向 Process / ProcessBuilder 的输出?我知道它在 Java 7 中是这样工作的:

但是对于Java 5/6,我需要同样的...任何帮助都非常感谢。

0 投票
2 回答
2488 浏览

java - 从 java.lang.Process 读取输出 - 没有什么可读取的

我正在尝试通过 Java 在 linux 中执行终端命令,但我无法从 inputStream 获得任何输入。

这是我的代码

进程被执行并立即终端关闭,并且没有输出被捕获和打印。另一方面,如果我要编写一个未知的命令,我会得到所有提示如何使用命令的行。我在使用 Windows cmd 时遇到了同样的问题。我试图使用 getRuntime.exec(cmd) 方法,但结果是一样的。

我还尝试为看起来像这样的进程和阅读器创建单独的线程

但是对于调用线程等的任何组合,我仍然没有什么可读的。

我正在尝试使用命令“find /home -xdev -samefile file”来获取文件的所有硬链接,所以也许有一种更简单的方法。

0 投票
0 回答
1152 浏览

java - 使用 ThreadPoolExecutor 运行 java 的 Java ProcessBuilder 在 ubuntu 上无法正常工作

运行应用程序几天后,我发现在 /root 文件夹中创建了一些 JVM 崩溃报告日志文件以该信息开头

我发现以下行为仅在 Ubuntu 上发生

java 版本 "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode) Linux ubuntu 2.6.32-36-server #79-Ubuntu SMP 2011 年 11 月 8 日星期二 22:44:38 UTC x86_64 GNU/Linux

但是在 Windows 7 Professional 32 位上运行的相同 jar 可以正常工作

java 版本“1.6.0_22” Java(TM) SE 运行时环境(构建 1.6.0_22-b04) Java HotSpot(TM) 客户端 VM(构建 17.1-b03,混合模式)

我有一个使用 ThreadPoolExecutor 来处理一些对象的多线程 Java 应用程序 (APP1)。当我从命令行在 Linux 上运行它时,它按预期工作。然后我编写了另一个ProcessBuilder.start用于执行多线程应用程序的 java 应用程序 (APP2)。

当我使用 APP2 运行 APP1 时,我发现 APP1 中的行为ThreadPoolExecutor有所不同,其中一些线程多次使用其旧数据重用。我的代码是这样的: App1:

myProcessor正在实现可运行,并且数据存储在私有变量中。

这是myProcessor类的代码

当我检查日志文件时,我发现线程名称使用相同的数据 id 运行了两次,而当我从命令行正常运行 App1 时,它从未发生过。

以前有人遇到过这种行为吗?

0 投票
2 回答
28434 浏览

java - 错误:原因:java.io.IOException: CreateProcess error=2,系统找不到指定的文件。适用于所有可执行文件

我的目标是从 java 运行 SVN 命令以满足我的要求之一,同样我已经安装了 TortoiseSVN 命令行工具。将适当的路径“C:/Program Files”/TortoiseSVN/bin”添加到我的环境“Path”变量中。

通过上述设置,我可以使用“svn --version”从 Windows 命令行运行我的 svn 命令,它工作得非常好。

现在回到代码来执行相同的操作,我为此使用了 processbuilder。但是我最终遇到了上述错误-java.io.IOException:无法运行程序“svn --version”:CreateProcess error=2,系统找不到指定的文件。

我已经尝试过以下事情,

  1. 使用 ProcessBuilder.environment 检查 Path 和 PATH 值。路径是 emply,但 PATH 配置了所有必要的应用程序路径,包括“TortoiseSVN/bin”路径。这样就清除了 ProcessBuilder 在其路径中没有可执行位置的理论。

  2. 在执行时,我尝试给出完整路径,而不是仅仅 svn --version,即“C:/Program Files/TortoiseSVN/bin/svn.exe”。这也给出了同样的错误。

  3. 我为其他可执行文件(如“java -version”)尝试了相同的代码,但也因相同的异常而失败。

我现在有一种非常基本的感觉是不对的。但是现在我已经尝试了一天多的时间,但我没有得到任何线索。

好吧,还有一件事,我在 Windows 7 机器上运行它。

下面是我正在使用的代码,

期待任何提示/指针。

谢谢,维姬

0 投票
1 回答
1589 浏览

java - 使用 JavaCPP 编译代码时出现异常?

我正在尝试在http://code.google.com/p/javacpp/上运行自己的 LegacyLibrary 示例

当我尝试使用仅在站点中提到的以下命令编译代码时(基本上是使用 javacpp.jar 编译代码),我遇到了以下异常

对此有何补救措施?