java runtime.getRuntime.exec( cmd ) with long parameters

后端 未结 3 1449
生来不讨喜
生来不讨喜 2021-01-28 15:35

I\'m making a frontend for a command line app. It has a very long The command line is something simliar to this:

public String liveShellCommand(){

  String cmd         


        
3条回答
  •  傲寒
    傲寒 (楼主)
    2021-01-28 16:06

    +1 for sending the arguments through as an array.

    Sending everything through as a string may work on some systems but fail on others.

    Process start = Runtime.getRuntime().exec(new String[]
    { "java", "-version" });
    BufferedReader r = new BufferedReader(
         new InputStreamReader(start.getErrorStream()));
    String line = null;
    while ((line = r.readLine()) != null)
    {
        System.out.println(line);
    }
    

    I know you have said that you tried sending the arguments through as an array of Strings without success but were you receiving a different type of error? If that other program has a log you might want to see what is going wrong. You could write a simple script that outputs the parameters it was called with to test what is actually coming through.

提交回复
热议问题