无法获取shell脚本的输出';s回显到Java变量
我用Java调用一个shell脚本,在shell脚本中,我运行一些查询并获取它们的运行时间(例如,当我将echo TIME的结果保存到输出文件中时,我在一列中得到例如28秒27秒34秒),但是我无法将echo TIME的输出到Java,当运行程序时,我得到一些奇怪的十进制数。我从shell脚本获取输出的代码如下:无法获取shell脚本的输出';s回显到Java变量,java,shell,echo,output,Java,Shell,Echo,Output,我用Java调用一个shell脚本,在shell脚本中,我运行一些查询并获取它们的运行时间(例如,当我将echo TIME的结果保存到输出文件中时,我在一列中得到例如28秒27秒34秒),但是我无法将echo TIME的输出到Java,当运行程序时,我得到一些奇怪的十进制数。我从shell脚本获取输出的代码如下: import java.util.*; import java.io.*; public class Test { public sta
import java.util.*;
import java.io.*;
public class Test
{
public static void main(String[] args)
{
TreeMap <String, Long> myMap = new TreeMap <String, Long>();
String output = "";
String line = "";
myMap.put("key", value);
myMap.put("key", value);
List<String> cmdList = new ArrayList<String>();
cmdList.add("/path/to/the/test/file/test.sh");
for(Map.Entry entry : myMap.entrySet())
{
cmdList.add(entry.getKey().toString());
cmdList.add(entry.getValue().toString());
}
try
{
Process process = Runtime.getRuntime().exec(cmdList.toArray(new String[cmdList.size()]));
//get input stream of the process
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = in.readLine()) != null)
{
output += line;
}
}
catch(IOException e){ System.out.println("Caught IOException: " + e.getMessage()); }
System.out.println(output);
}
}
来自java的奇怪输出:
A F 37734107.00 56586554400.73 53758257134.8700 55909065222.827692 25.522006 38273.129735 0.049985 1478493N 991417.00 1487504710.38 1413082168.0541 1469649223.194375 25.516472 38284.467761 0.050093 38854N O
我在代码中可能做错了什么 您至少应该:a)向我们展示如何运行脚本(您展示给我们的部分几乎什么都不告诉我们)b)在命令行中运行时的脚本输出c)java程序的输出另外,请务必确定脚本打印到stdout vs stderr的内容。@Ingo谢谢,刚刚编辑在命令行中运行脚本时,可以添加脚本的输出吗?@Ingo我把它放在上面,这些数字就是我在命令行中得到的数字
A F 37734107.00 56586554400.73 53758257134.8700 55909065222.827692 25.522006 38273.129735 0.049985 1478493N 991417.00 1487504710.38 1413082168.0541 1469649223.194375 25.516472 38284.467761 0.050093 38854N O