如何给bat文件的路径触发它作为webservice?

时间:2017-04-19 05:16:55

标签: java web-services rest batch-file

在执行独立的.bat文件时,我可以调用它但是当我将它作为其余的web服务公开时,我收到错误,因为 - 找不到bat文件。

如何设置bat文件的路径来执行它?

@GET
    @Path("/triggerMyBat")
    public Response triggerMyBat() throws Exception {
    //public static void main(String[] args){
        try {

                     String ss = null;

                        Process p = Runtime.getRuntime().exec("cmd.exe /c start myBat.bat");
                        BufferedWriter writeer = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
                        writeer.write("dir");
                        writeer.flush();
                        BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
                        BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
                        while ((ss = stdInput.readLine()) != null) {
                            System.out.println(ss);
                        }
                        while ((ss = stdError.readLine()) != null) {
                            System.out.println(ss);
                        }
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            System.out.println("ok");
        }
        return Response.status(200).entity("Success").build();
        }

1 个答案:

答案 0 :(得分:0)

如果你的bat文件位于cmd.exe引用的文件夹中,那么你可以调用它。否则,您需要设置文件的完整路径或将bat的文件夹放在Windows的Environment变量的Path变量中。