Java 在不创建.bat文件的情况下运行cmd命令

Java 在不创建.bat文件的情况下运行cmd命令,java,cmd,Java,Cmd,有没有一种方法可以在不创建.bat文件的情况下执行诸如“move FolderA FolderB”之类的cmd命令并启动它? 如果它不在硬盘上创建文件就可以工作,那就太好了 Runtime.getRuntime().exec(new String[]{"cmd.exe","/c","move","dirA/a.txt","dirB"}); JavaDoc称,自Java1.5以来,ProcessBuilder优先于Runtime.exec() 请务必阅读流程Javadoc,以了解如何读取和写入流

有没有一种方法可以在不创建.bat文件的情况下执行诸如“move FolderA FolderB”之类的cmd命令并启动它? 如果它不在硬盘上创建文件就可以工作,那就太好了

Runtime.getRuntime().exec(new String[]{"cmd.exe","/c","move","dirA/a.txt","dirB"});
JavaDoc称,自Java1.5以来,
ProcessBuilder
优先于
Runtime.exec()

请务必阅读
流程
Javadoc,以了解如何读取和写入流程


对像
move
这样的命令进行炮击是不好的做法,因为它既不可移植也不安全。改为使用
文件
类。但有时你不得不掏钱与更深奥的外部程序进行交互。

为什么在这个问题中要标记Java?@Sharpedge我想他们想从Java程序中进行;虽然我只是从标记中推断出来的,所以我可能是错的。很遗憾,可能的重复我不得不退出并将函数设置为“windows only”,因为java允许windows执行文件移动过程。只有单个cmd命令可以按排序顺序移动文件。使用“move”绝对没有纯Java所不能做的事情。这是不对的。当java或apache commons进行移动时,该过程从“e.txt”开始,而不是从“a.txt”,如果您需要26个文件,a.txt…z.txt,我建议您将java移动代码放入一个新问题中,并询问它为什么跳过a-d。你的代码可能有错误。嗨,我想我找到问题了。移动文件后,java需要等待0.1秒。而不是按顺序移动。
 Process process = new ProcessBuilder("cmd.exe",
                       "/c","move","dirA/a.txt","dirB").start();