我遇到了从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驱动程序。
答案 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”需要一个文件名,其中包含完整路径作为参数。