簡體   English   中英

無法從Java調用Shell腳本

[英]unable to call the shell script from java

我正在使用ProcessBuilder從Java調用Shell腳本,但沒有任何價值。 它顯示為空結果。

這是我的代碼:

package webservice;

import java.io.IOException;
import java.io.InputStream;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;

@Path("/hello")
public class HelloWorldService {

    @GET
    @Path("/{param}/{param2}/{param3}")
    public Response getMsg(@PathParam("param") String bedroom,@PathParam("param2") String bathroom,@PathParam("param3")String area) throws IOException {
        ProcessBuilder pb = new ProcessBuilder("/script/spark-submit.sh");  
        pb.environment().put("a", bedroom);
        pb.environment().put("b", bathroom);
        pb.environment().put("c", area);
        Process p=pb.start();
        InputStream is = p.getInputStream();
        int i =0;
        StringBuffer sb = new StringBuffer();
        while((i=is.read())!=-1)
            sb.append((char)i);
            System.out.println("value of sb:"+sb.toString());
            String a =sb.toString();
            System.out.println("value of a:"+a);
            String[] arr = a.split(" ");
            if (arr != null) 
            {
                System.out.println("predicted value is " + arr[arr.length - 1]);
            }
            String output = "predicted value is " + arr[arr.length - 1];
            return Response.status(200).entity(output).build();
        }
    }

Shell腳本代碼

spark-submit --class scalatest.scalatest.scalatest --master local[4] /home/ec2-user/scalatest-0.0.1-SNAPSHOT.jar $a $b $c

嘗試使用

Process p=pb.start();
p.waitFor();

看來您的過程從未真正開始

嘗試使用

try {
    Runtime rt = Runtime.getRuntime();
    Process p = rt.exec(cmd);
    p.waitFor();
    BufferedReader buff = new BufferedReader(new InputStreamReader(p.getInputStream()));
    String line;
    while((line = buff.readLine()) != null){
        temp += line;
    }
    System.out.println(temp);
} catch (Exception e){
        e.printStackTrace();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM