问题标签 [runtime.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 回答
1758 浏览

java - Hudson 运行的代码在命令行上找不到可执行文件

我正在哈德逊建立我的第一份工作,我遇到了一些问题。该作业监控两个存储库,一个包含我们的数据库设置文件,另一个包含一些验证和测试数据库设置文件的代码。

运行的部分代码将使用 psql 命令行工具,使用 Runtime.exec() 在 PostgreSQL 中抛出经过验证的设置文件。此代码在我的机器上完美运行,但是当 Hudson 执行它(不同的机器)时,我收到以下错误:

psql.exe 在路径上,我可以通过在命令行中键入整个内容来执行它,从 Hudson 执行代码的同一个地方开始。要传递给 psql 的文件存在。

有任何想法吗?

0 投票
2 回答
1599 浏览

java - 哈德逊作业挂在 Runtime.exec

我通过 Tomcat 将 Hudson 作为 Windows 服务运行,不涉及任何从站。作业中的最后一个构建步骤是调用一些 Java 代码的批处理文件。该代码使用 PostgreSQL 的命令行工具 psql(通过 Runtime.exec())在本地机器上创建一个数据库,并最终针对它运行一些测试。

该作业将进行到这一点,然后无限期地挂起而不开始创建数据库。如果我从命令行运行批处理文件,它会完美运行。我认为http://hudson.gotdns.com/wiki/display/HUDSON/Spawning+processes+from+build不适用,因为生成的进程似乎还没有开始执行,但我对此并不陌生所以如果我错了,请告诉我。

编辑@anjanb:批处理文件的唯一目的是调用 Java 代码,唯一的用户输入作为命令行参数传入,我可以看到它直接通过构建的控制台输出进入。

Process Explorer 显示 psql 正在启动,但它显然没有被执行,因为给出的第一个命令 psql 是创建一个新数据库,但这并没有发生。

编辑 2:我从 Hudson 用户邮件列表中获得了一些提示,我将在周一试用并报告。

编辑 3:Java 代码已经在使用输出流,我在开发代码时使用了那篇文章。我不知道发生了什么,所以我正在重新开发代码以使用 JDBC 来创建数据库,而不是依赖 psql 和 Runtime.exec()

0 投票
6 回答
20399 浏览

java - 在 getRuntime().exec 中使用引号

我想使用字符串作为输入来调用 bash。就像是:

我想从 Java 中做到这一点。不幸的是,当我尝试使用 调用命令时getRuntime().exec,出现以下错误:

这似乎与我的字符串没有被 EOF 终止有关。

有没有办法将特定于平台的 EOF 插入到 Java 字符串中?还是我应该寻找另一种方法,例如在调用 "sh" 之前写入临时脚本?

0 投票
4 回答
9543 浏览

java - 从 Java 启动 OpenOffice 服务 (soffice) 的问题(在命令行中工作的命令,但不是从 Java 中)

我想执行一个简单的命令,它可以在 shell 中工作,但不能在 Java 中工作。这是我要执行的命令,效果很好:

这是我从 Java 中执行的代码,试图运行这个命令:

当我运行这个程序时,我得到“命令执行成功”。但是,当程序完成时,该进程没有运行。JVM是否有可能在程序运行后将其杀死?

为什么这不起作用?

0 投票
6 回答
13097 浏览

java - java中的运行时类

如何在 Runtime.getRuntime().exec() 的帮助下执行 java 程序。例如,我们将 java 文件路径设为 c:/java/abc.java。请帮我写代码。

0 投票
3 回答
2970 浏览

java - 从窗口服务运行 jar 应用程序时,环境变量中的用户变量值在运行时未获取?

我使用了一种方法“System.getenv();” 在 jar 应用程序中获取用户定义的环境变量的值。我已经让 jar 应用程序从窗口服务运行。但是当我尝试启动服务时,它没有获取用户定义的环境变量的值并显示空指针异常。我已经尝试在“System.getenv("JAVA_HOME");”中使用系统变量名 方法,通过获取相应的值可以正常工作。环境变量中的用户变量有什么错误。我应该在代码中做任何事情吗?

0 投票
12 回答
310602 浏览

java - 如何从我的 Java 应用程序运行批处理文件?

在我的 Java 应用程序中,我想运行一个调用“ scons -Q implicit-deps-changed build\file_load_type export\file_load_type”的批处理文件

看来我什至无法让我的批处理文件执行。我没主意了。

这就是我在 Java 中所拥有的:

以前,我有一个我想运行的 Python Sconscript 文件,但由于它不起作用,我决定通过批处理文件调用该脚本,但该方法尚未成功。

0 投票
3 回答
7883 浏览

java - 如何使用 Java 关闭命令窗口

每次使用Runtime.exec("cmd /c start....")时,我都会打开一个 cmd 窗口。我想通过关闭每个以前的 cmd 窗口来创建一个更无缝的应用程序。我怎样才能做到这一点?

如果有人知道在同一个 cmd 窗口中运行一系列命令而不是每次执行命令时都打开新命令的更好方法,请告诉我。

0 投票
2 回答
532 浏览

java - 运行时 exec 和自定义构建的 RTF 编辑器

我有一个管理 RTF 文档创建的类和该类中的一个方法,该方法使用 XML 文件调用 RTF 编辑器进行显示。

除一位用户外,所有用户都可以毫无问题地访问此编辑器。这个用户一直遇到他们的应用程序挂起的问题。任何日志中都没有错误。通常这种问题很容易识别、重现和纠正,但是,我不能在我的生命周期内重现它,所以我的调试尝试失败了。

基本上代码如下:

最后一个输出是第一个 System.out。当我获取 xml 文件并在任何其他 PC 上执行它时,它可以毫无问题地执行。我在 proc.getErrorStream() 或 proc.getOutputStream() 中看不到任何有用的信息。

JDK关于这个问题的Javadoc文档(exec挂起): 由于一些原生平台只为标准输入输出流提供有限的缓冲区大小,未能及时写入子进程的输入流或读取输出流可能会导致子进程阻塞,甚至陷入僵局。

我尝试在等待进程退出之前耗尽该流,但这似乎没有帮助,因为它似乎永远不会达到这一点(第二个 System.out 未显示)

我是否错误地实施了这一点?我错过了什么重要的东西吗?关于如何从流程中获取更多信息的任何想法都会很棒。

我被困住了......

0 投票
4 回答
3384 浏览

java - 从 Java 代码中运行程序

用一段 Java 代码调用程序的最简单方法是什么?(我要运行的程序是 aiSee,它可以从命令行或 Windows GUI 运行;我在 Vista 上,但代码也将在 Linux 系统上运行)。