Javaとは別にコマンドライン操作の実行をテストするための非常に単純なプログラムを作成しました。つまり、後で、「move」を使用して、コマンドラインに入力できる他のコマンド(他のJava以外のソフトウェアの呼び出しを含む)にこのコードを変更できるようにしたいのです。
私はおそらく20の答えを検索して読みましたが、それらはすべて、これを正しく試していることを示唆しているか、単純なテストとは無関係であるか、または機能しない他の解決策を提案しました(.exec(String [])メソッドの代わりに使用するなど)。 exec(String)-同じ結果です!)。
これが私のコードです:
import java.io.IOException;
public class RunCommand {
private static final String PATH_OUT = "C:\\Users\\me\\Desktop\\Temp\\out\\";
private static final String FILE = "sample.txt";
private static final String PATH_IN = "C:\\Users\\me\\Desktop\\Temp\\in\\";
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:\Users\myingling\Desktop\CDS\Temp\in\sample.txt C:\Users\myingling\Desktop\CDS\Temp\out\
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()メソッドを呼び出したときに機能するようになっているといいのですが。しかたがない。