当前位置: 首页 > 知识库问答 >
问题:

从Java代码运行命令不起作用,但通过cmd.exe手动运行相同的字符串

俞新翰
2023-03-14

我正在用自己的参数从JAR3程序中启动。第一个和第二个程序完成它们的工作,但第二个程序不完成。

Runtime rt = Runtime.getRuntime();
String cmdGet= "something";
try    {
            infolog("Executing command: " + cmdGet);
            rt.exec(cmdGet);
        }
        catch(Exception ex){
            infolog("Unable to launch program 2");
            saveLog();
        }
D:\Root\Module\Translators\L2Fo\SE_Draft_Update.exe -se_file="F:\Disp\Stage\DC\Ude34ea24x591ecb1c412x\M8486.dft" -input_file="F:\Disp\Stage\DC\Ude34ea24x591ecb1c412x\result\AttributeFile_M8486.txt" -log_file="F:\Disp\Stage\DC\Ude34ea24x591ecb1c412x\result\SELogg_M8486.txt"

这个程序之后的第三个程序也有效。我不明白为什么。

共有1个答案

微生昌勋
2023-03-14

有时命令需要它自己的cmd-shell。然后必须添加一个“cmd.exe/c”前缀。这就是为什么'something'行在cmd窗口中工作正常的原因。

if (b_shell == true) cmd = "CMD.EXE /C " + cmdstr;
else                 cmd = cmdstr; 
...
rt.exec(cmd);

我将b_shell作为参数传递给包装器方法:

public static void systemCall(String cmdstr,boolean b_shell,Path logfile) throws IOException
 类似资料:
  • 问题内容: 我有一个应用程序,该应用程序应该使用一些shell命令将文件从sdcard复制到/ system / media /。它将需要root用户,并且我正在对root用户的设备进行测试。我正在使用运行时来执行Shell命令,但无法正常工作。这是我的运行时所需要的 但是我的日志只显示其中两个没有被拒绝 这两个看起来是sysrw和sysro命令,但是当我触发此代码时,该应用程序仍会请求root权

  • 我得到 它不包含我在NetBeans中使用的jdk的路径。我没有找到一种方法告诉Java我想使用另一个jdk,所以我尝试了不使用: 运行特定主文件的示例 在java.lang.class.PrivateGetMethodRecursive(class.java:3048) 在java.lang.class.GetMethod0(class.java:3018) 在java.lang.class.G

  • 问题内容: 我正在尝试从用户读取一个文件,其中每一行都是一个命令,然后运行它(可以假定命令是合法的),但是当我给出类似的命令时,出现运行时异常错误: 线程“主”中的异常java.io.IOException:无法运行程序“ echo”:CreateProcess错误= 2,系统找不到指定的文件 我正在尝试运行以下命令: 在哪里。但这确实适用于类似的命令,所以看来我得到的运行时就像“运行”窗口而不是

  • 问题内容: 我发现了几个用于通过Java类运行cmd命令的代码段,但我无法理解。 这是打开cmd的代码 我找到了一些其他链接来添加其他命令,例如cd http://www.coderanch.com/t/109753/Linux-UNIX/exec-command-cd-command-java 如何使用Java打开命令提示符并插入命令? 谁能帮助我了解如何CD目录,例如: 然后在该目录上运行其他

  • 我找到了几个通过Java类运行cmd命令的代码片段,但我无法理解。 这是打开命令的代码 我还找到了一些添加其他命令的链接,比如cdhttp://www.coderanch.com/t/109753/Linux-UNIX/exec-command-cd-command-java 如何使用Java打开命令提示符并插入命令? 有人能帮我了解如何cd目录,例如: 然后在该目录上运行其他命令?

  • 一些注意事项: 1。我最初使用的TestNG jar来自java项目中的maven repo。下面的所有方法都是用maven testNG jar和新的TestNG6.9.12下载进行测试的。 2。我可以从Eclipse中运行这个文件。只有当我尝试从命令行运行时才有问题。 3。最终目标是通过javafx应用程序按钮触发命令行来运行测试。如果提供的解决方案避免在cmd中键入绝对路径,因为应用程序将在