无法在服务器上从java执行/运行vbs文件

无法在服务器上从java执行/运行vbs文件,java,vbscript,Java,Vbscript,我有一个VBS文件xxx.VBS,我可以使用以下代码在本地计算机上执行该文件: String cmd = "wscript filePath\\xxx.vbs"; Process p = Runtime.getRuntime().exec(cmd); 但是,当我创建项目的war文件并将其部署到服务器上时,我无法执行vbs文件 但是,我可以在服务器上手动执行VBS文件。因此,VBS文件没有问题 你知道上面的原因吗?试着添加下面的片段来确定背景中发生了什么 String line="";

我有一个VBS文件xxx.VBS,我可以使用以下代码在本地计算机上执行该文件:

 String cmd = "wscript filePath\\xxx.vbs";
 Process p = Runtime.getRuntime().exec(cmd);
但是,当我创建项目的war文件并将其部署到服务器上时,我无法执行vbs文件

但是,我可以在服务器上手动执行VBS文件。因此,VBS文件没有问题


你知道上面的原因吗?

试着添加下面的片段来确定背景中发生了什么

String line="";
          try
            {
            InputStreamReader isr = process.getInputStream();
            BufferedReader br = new BufferedReader(isr,4094);
            while ( (line = br.readLine()) != null)
                System.out.println(line);    
            } catch (IOException ioe)
              {
                ioe.printStackTrace();  
              }

          try
            {
             isr = process.getErrorStream();
             br = new BufferedReader(isr,4094);
             while ( (line = br.readLine()) != null)
                System.out.println(line);    
            } catch (IOException ioe)
              {
                ioe.printStackTrace();  
              }
另外,以上代码片段仅供参考

Runtime.getRuntime().exec()
只需开始执行,然后退出。。 尝试上述操作最终将显示异常(如果有)以及您尝试运行的脚本文件的输出


但是,更好的方法是创建一个单独的runnable,它可以接受输入流并显示其内容,而不是编写我上面指定的代码。

可能存在文件路径问题。服务器可能无法查找您提供的路径。vbs文件否我已检查文件路径,该路径正确无误。问题是Runtime.getRuntime().exec(cmd)未被执行。我在VB脚本的开头提供了echo语句,以检查VBS文件是否正在执行,但我确信VBS文件没有执行。“…但我确信VBS文件没有执行。”是的,因为找不到它!在这种情况下,
wscript
调用将以错误代码退出。您在Java编码中检查了吗?@Praveen因为您正在获取流程对象,所以调用exitValue()并记录它以查看退出代码。。您应该始终检查i/p流和错误流以检查executionOh的日志,顺便说一下:
wscript
是windows应用程序,而
cscript
是命令行应用程序。您很可能希望使用
cscript