import java.io.File;
import java.io.IOException;
import java.lang.ProcessBuilder.Redirect;
public class RunJava {
public static void main(String[] args) throws IOException {
ProcessBuilder pb = new ProcessBuilder("java","HelloWorld");
pb.directory(new File("/home/local/prasanth-8508"));
pb.redirectOutput(Redirect.INHERIT);
pb.redirectError(Redirect.INHERIT);
pb.start();
}
}
线程“main”java.io.ioException中出现异常:无法运行程序“java”
但是当我从终端上运行任何java命令时,它们都工作得很好。
我发现的另一件事是,当我在终端中运行命令:echo$path
并使用ProcessBuilder(ProcessBuilder pb=new ProcessBuilder(“bash”,“-c”,“echo$path”);
)时,它们会显示不同的输出。即ProcessBuilder命令中不显示jdk/bin的路径。
我如何解决这个问题?
是的,正如@MichaelBerry所说,你可能没有权限访问它,但除此之外,我也想包括在内,
在这里,您已经从非常好的ProcessBuilder开始,您只需要修改ProcessBuilder构造函数中的参数-jar
之类的小东西。
我发布了下面的示例代码,可以帮助您理解它是如何工作的。
ProcessBuilder pb = new ProcessBuilder("/path/to/java", "-jar", "your.jar");
pb.directory(new File("preferred/working/directory"));
Process p = pb.start();
I使用Processbuilder如下所示: 在方法中,我设置要执行的linux命令,如下所示: 我可以从终端执行相同的命令。
我正在尝试使用ProcessBuild运行cmd语句。 但是,我只能打开cmd。exe 那么如何编写此语句通过java运行cmd命令??我得到了错误,因为语句由"*"组成。如何编辑ProcessBuilder以便我可以运行语句?非常感谢
我试图使用Java的类来执行包含管道的命令。例如: 然而,我得到了一个错误: 然后: 尽管该命令在命令行中运行得很好,但我无法让执行将其输出重定向到另一个的命令。 有没有办法做到这一点?
问题内容: 好的,所以我有一个通过ProcessBuilder运行的python脚本。一切正常。我遇到的问题是,每当我将参数传递到python脚本时,python脚本都会以响应。但是,如果我采用确切的命令并将其复制并粘贴到命令提示符下,则它运行得很好。有什么帮助吗?这是我现在所拥有的一般想法: 问题答案: 将两个单独的参数传递给,而不是串联和: 否则,要执行的程序将看到无法识别的单个参数。
问题内容: 我创建了一个类,该类使用ProcessBuilder创建流程,然后启动流程 现在,当我在linux机器上运行该类时,它运行良好,但是在Windows上却给了我错误,指出未找到“ mvn”之类的东西,我需要更改为 但是,如果我在命令提示符“ mvn exec:java -Dexec.mainClass = FunnyClass”上运行命令,它将运行正常。那么,为什么我需要在process
堆栈跟踪: cat://opt/mapr/zookeeper/zookeeeperversion:没有这样的文件或目录16/10/25 07:41:12信息Sqoop.Sqoop:运行Sqoop版本:1.4.6-mapr-1609 16/10/25 07:41:12警告工具。basesqooptool:在命令行设置密码不安全。考虑改用-p。16/10/25 07:41:13错误tool.bases