我有一个想要传递给进程的String []。出于某种奇怪的原因,我的IDE给我一个错误,提示需要大括号,并且我的陈述不是一个完整的陈述。我已经检查了代码中的所有地方,但看不到任何一个大括号,因此对于为什么会收到此错误感到困惑。这是代码:

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"};


也许有一些我没有看到的小错误,所以我将不胜感激。谢谢。

最佳答案

这是您的问题:

 +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"};

10-08 03:57