0

我有一个要传递给进程的 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"};

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

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 回答