为什么我的Java Web应用程序找不到.bat文件?

时间:2016-11-03 13:51:22

标签: java spring-mvc

我遇到了从Java Web应用程序运行 .bat 文件的问题。

本地机器中的当前设置:创建Web应用程序和方法包含

Process p = Runtime.getRuntime().exec("c:/test/myFile.bat");

当我在代码上方运行时,它会显示file not found

但是,如果我将 .bat 文件复制到tomcat bin文件夹,它的工作正常。但我需要在单独的文件夹中执行bat文件,我甚至也设置了类路径,但是我无法执行bat。

屏幕1:

我在Tomcat根目录din文件夹中放置了5个文件,并放在c:/ psgsscripts / - >文件夹也是(检查Java代码;只有bat文件被其他.tbc文件在运行时查看Tomcat bin文件夹位置)

屏幕2:

bat文件包含 tclsh psg.tbc%1

屏幕3:

类方法中的web应用程序java代码(newjobid是.bat文件的参数)

屏幕4:

如果我把它全部放在.bat文件和.tbc文件bin文件夹中它工作正常(Java代码表示从c盘读取.bat文件,但其他.tbc文件在运行时查看Tomcat bin文件夹)

但要求是那些文件放在其他驱动器(除了Tomcat文件夹)之外,如C或D或E驱动程序。

Screen1

Screen2

Screen 3

Screen 4

2 个答案:

答案 0 :(得分:2)

您需要执行命令以运行批处理文件,如下所示

Runtime.getRuntime().exec("cmd /c start c:\\test\\myFile.bat");

答案 1 :(得分:2)

尝试以下方法:

Process p = Runtime.getRuntime().exec("cmd /C start c:/test/myFile.bat");

如果查看java docs,方法exec需要OS命令而不是文件名。因此在提出的解决方案中,“cmd”是OS命令,/C是一个开关,它告诉OS命令执行string指定的命令然后终止。这里字符串指定的命令是start。命令“start”需要一个文件名,其中包含完整路径作为参数。