有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

linux使用Java将带有空格的参数传递给Shell脚本

我很难用以下JAVA代码将带有空格的参数传递给shell脚本:

List<String> parameterList = new ArrayList<String>();
parameterList.add(executable);
parameterList.add(inputFile);
parameterList.add(outputPath);

ProcessBuilder pb = new ProcessBuilder(parameterList);
pb.redirectErrorStream();
Process p = pb.start();
BufferedReader reader = new BufferedReader(newInputStreamReader(p.getInputStream()));
@SuppressWarnings("unused")
String line = null;
while ((line = reader.readLine()) != null) {
}

将我的参数传递到输入文件变量列表中的第二个add时会出现问题

如果我使用bat文件,我可以得到带有空格的字符串,使用变量%1表示“my data.xml”。然而,在LINUX中,我不能使用%1,而是有“$1”不接受带空格的字符串。有没有类似的方法可以让我将带有空格的参数传递给shell脚本

编辑: 在控制台中,命令应如下所示: 跑sh“/scratch/input/my data.xml”/scratch/output/

有没有办法从JAVA逐字调用上述命令

谢谢


共 (0) 个答案