加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

从Java中运行命令行操作

发布时间:2020-12-14 05:47:39 所属栏目:Java 来源:网络整理
导读:我构建了一个非常简单的程序来测试运行 Java的命令行操作.那就是:后来我希望能够修改此代码,使用“move”到我可以进入命令行的任何其他命令(包括调用其他非Java软件). 我确实搜索并阅读了大约二十几个答案,但是他们都建议我正确地尝试这个,对我的简单测试是
我构建了一个非常简单的程序来测试运行 Java的命令行操作.那就是:后来我希望能够修改此代码,使用“move”到我可以进入命令行的任何其他命令(包括调用其他非Java软件).

我确实搜索并阅读了大约二十几个答案,但是他们都建议我正确地尝试这个,对我的简单测试是无关紧要的,或者提出其他不起作用的解决方案(比如使用.exec(String [])方法而不是.) exec(String) – 结果相同!).

这是我的代码:

import java.io.IOException;

public class RunCommand {

private static final String PATH_OUT = "C:UsersmeDesktopTempout";
private static final String FILE = "sample.txt";
private static final String PATH_IN = "C:UsersmeDesktopTempin";

public static void main(String[] args) {
    try {
        String command = "move "+PATH_IN+FILE+" "+PATH_OUT;
        System.out.println("Command: "+command);
        Runtime.getRuntime().exec(command);
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

这是我运行时看到的输出:

Command: move C:UsersmyinglingDesktopCDSTempinsample.txt C:UsersmyinglingDesktopCDSTempout
java.io.IOException: Cannot run program "move": CreateProcess error=2,The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at RunCommand.main(RunCommand.java:13)
Caused by: java.io.IOException: CreateProcess error=2,The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 5 more

请注意,当我将命令复制/粘贴到命令提示符窗口时,文件会成功移动.

我错过了什么?我读过的所有其他问题似乎表明这应该有效.

谢谢!

编辑现在工作,感谢大家的帮助!令人讨厌的是它隐藏了“move”是cmd.exe参数的方式.我希望他们在调用.exec()方法时复制/粘贴时有效.那好吧.

解决方法

“move”命令是cmd.exe解释器的一部分,而不是可执行文件.

这可行:

cmd.exe /c move file1 file2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读