gpt4 book ai didi

java - 在java中运行cmd-line失败

转载 作者:行者123 更新时间:2023-12-02 00:17:07 26 4
gpt4 key购买 nike

我面临以下问题:

我正在 Eclipse 中编写一个 java 应用程序。在我的应用程序中,我想启动一个 cmd 命令:

C:/Users/User1/Content-Integration Testing Framework/JDBC Connector/bin/connect -h

命令“connect -h”是一个运行良好的企业内部应用程序。如果我使用命令行,则必须像这样改变我当前的目录:

cd C:/Users/User1/Content-Integration Testing Framework/JDBC Connector/bin/

然后我只需输入connect -h这很好用。但我不太清楚如何在 java 应用程序中执行这个命令。

这里他们告诉我如何在 java 应用程序中运行 cmd: How to use "cd" command using Java runtime?

但如果我这样做:

Runtime.getRuntime().exec("'C:/Users/User1/Content-Integration Testing Framework/JDBC Connector/bin/connect' -h");

Eclipse 告诉我:

java.io.IOException: Cannot run program "'C:/Users/User1/Content-Integration": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at java.lang.ProcessBuilder.start(Unknown Source)

它切断了我在“内容集成”方面的命令。

有人可以帮我吗?

最佳答案

您应该使用 takes multiple argsexec() 版本通过 String 数组。

Runtime.exec(String s) 将使用分词器分割您的字符串(这就是为什么引用字符串不起作用,以及为什么您会看到您所做的行为)。如果您自己解析可执行文件和参数,并将每个参数作为上面的数组元素传递,例如

String[] args = new String[]{"executable", "arg1", "arg2"};
Runtime.getRuntime().exec(args); // don't forget to collect stdout/err etc.

那么你将绕过Runtime.exec(String s)的分割行为。

关于java - 在java中运行cmd-line失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11718124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com