0

プロセスに渡したい String[] があります。奇妙な理由で、私の IDE は、中かっこが必要であり、ステートメントが完全なステートメントではないというエラーを出しています。私は自分のコードのあらゆる場所をチェックしましたが、中かっこが 1 つ間違っていないので、なぜこのエラーが発生するのか混乱しています。コードは次のとおりです。

String[] cmdArray4 = {"/bin/tcsh","-c","sed -e 's/SPACE/"+matlab1spacing+"/' -e 's/MAX/"+matlab1dmax+"/' -e 's/NAME/"+matlab1filename"/' /filepath/matlabscript1.m > /filepath/matlabscript2.m"};
Process passVarstoMatlab;
passVarstoMatlab = Runtime.getRuntime().exec(cmdArray4);

おそらくそれが問題であるかどうかを確認するために、単一引用符文字をエスケープしようとしましたが、違いはありませんでした。さらに紛らわしいのは、完全に正常に機能する別のメソッドに非常によく似た形式の String[] があることです。これが、参照として使用した String[] です。

String[] cmdArray3 = {"/bin/tcsh","-c", "sed -e 's/AAA/"+newFirstLine+"/' -e 's/BBB/"+newCntr+"/' -e 's/SPACE/"+newSpacing+"/' -e 's/MAX/"+newDmax+"/' /filepath/gnom_Dmax_scan.pl > /filepath/g2.pl"};

私が見ていない小さなエラーがあるかもしれませんので、助けていただければ幸いです。ありがとう。

4

2 に答える 2

7

問題は次のとおりです。

 +matlab1filename"/'

これを試して:

String[] cmdArray4 = {"/bin/tcsh","-c","sed -e 's/SPACE/"+matlab1spacing+"/' -e 's/MAX/"+matlab1dmax+"/' -e 's/NAME/"+matlab1filename+"/' /filepath/matlabscript1.m > /filepath/matlabscript2.m"};
于 2013-07-03T14:39:35.733 に答える
6

matlab1filename の後に + がありません

于 2013-07-03T14:39:12.673 に答える