我有一个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"};
也许有一些我没有看到的小错误,所以我很感激任何帮助。感谢。
答案 0 :(得分: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"};
答案 1 :(得分:6)
你在matlab1filename
之后缺少一个+