Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法获取shell脚本的输出';s回显到Java变量_Java_Shell_Echo_Output - Fatal编程技术网

无法获取shell脚本的输出';s回显到Java变量

无法获取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

我用Java调用一个shell脚本,在shell脚本中,我运行一些查询并获取它们的运行时间(例如,当我将echo TIME的结果保存到输出文件中时,我在一列中得到例如28秒27秒34秒),但是我无法将echo TIME的输出到Java,当运行程序时,我得到一些奇怪的十进制数。我从shell脚本获取输出的代码如下:

    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