Search code examples
javaprocessbuilder

How to write command in process Builder


I am Running shell script using cygwin and java.

ProcessBuilder pb =new ProcessBuilder
("sh", "app.sh", "ib2", "12", "11", "AK-RD", "02.20", "D:\\cygwin\\bin\\test\\delta");

My script is running when i am hard coding parameters. I want to pass these parameters through text box values.

How to do this.

 String cmmd[] = new String[8];
        cmmd[0] ="\"sh\"";
        cmmd[1] ="\"app.sh\"";
        cmmd[2] ="\""+txt_threeltr.getText()+"\"";
        cmmd[3] ="\""+txt_month_c.getText()+"\"";
        cmmd[4] ="\""+txt_year_C.getText()+"\"";
        cmmd[5] ="\""+txt_partNumber.getText()+"\"";
        cmmd[6] ="\""+txt_version.getText()+"\"";
        cmmd[7] ="\""+txt_destinationname.getText()+"\"";

ProcessBuilder pb =new ProcessBuilder(Arrays.toString(cmmd));

Or is there any other way to do this.


Solution

  • Since ProcessBuilder has a varargs string constructor, you can do this:

    ProcessBuilder pb = new ProcessBuilder(cmmd);
    

    Alternatively, don't construct an array. Create it like this:

    ProcessBuilder pb = new ProcessBuilder ("sh", 
                                            "app.sh", 
                                            txt_threeltr.getText(), 
                                            txt_month_c.getText(), 
                                            txt_year_C.getText(), 
                                            txt_partNumber.getText(), 
                                            txt_version.getText(), 
                                            txt_destinationname.getText());