私はこのばかげた未知の行動を起こしています。私のアプリケーションでは、いくつかのタスクを実行するために Java プロセスを開始する必要があります。したがって、以下を実行します。
1a) String[] ls = {"cmd",
"/C",
"\"C:\\t e m p\\run time\\jre\\bin\\java.exe\"",
"-jar",
"Canon.jar"};
ProcessBuilder p = new ProcessBuilder(ls);
p.redirectErrorStream();
Process pp = p.start();
上記は完全に機能します。ただし、フルパスにCanon.jar
空白が含まれていると言うと、機能しません。基本的に、パスquotes
の周りに追加する必要があります。Canon.jar
すなわち
1b) String[] ls = {"cmd","/C",
"\"C:\\Prac\\t e m p\\run time\\jre\\bin\\java.exe\"","-jar",
"\"C:\\Prac\\t e m p\\Canon.jar\""};
引用符を含めた後でも、上記はまだ機能しません。それは言います:
末尾の 'C:\Users\Jatin\Documents\Prac\t' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。
最大の問題は、以下も機能しないことです。
1c) String[] ls = {"cmd","/C",
"\"C:\\Prac\\t e m p\\run time\\jre\\bin\\java.exe\"","-jar",
"\"C:\\Prac\\temp\\Canon.jar\""};//contains no white space.
それでも同じエラーが表示されます。Canon.jar
path toに空白が含まれていない場合、一体どうやってそれをもう一度言うことができますか。java.exe
作業時にパスに問題があると表示されるのはなぜですか1a
。