JAVA执行批处理文件的解决方案.docVIP

  • 11
  • 0
  • 约2.13万字
  • 约 4页
  • 2017-06-08 发布于河南
  • 举报
JAVA执行批处理文件的解决方案

JAVA执行批处理文件的解决方案 Java是种跨平台的语言,我们经常碰到需要通过Java调用windows下某些程序。有些第三方厂商如(ANT),也提供了调用windows下可执行程序的方法,但我们往往需要调用一些批处理命令。而Java却不提供。这里,我采用一种变相的调用方法,使得Java能调用批处理命令。 工具/原料 Quick Batch File (De)Compiler 步骤/方法 运行exe 文件。 Java JDK里已经提供了调用的方法,不在累赘,代码如下。 try { String command = notepad; Process child = Runtime.getRuntime().exec(command); } catch (IOException e) { } 运行 bat(批处理) 文件。 Java对批处理文件还不支持。刚开始一直在研究Java如何调用批处理文件,始终找不到解决方法。后来只好绕过批处理,考虑如何将批处理转换为exe可执行文件。然后再通过Java调用可执行文件。 在Google上搜索一下,找到Quick Batch File (De)Compiler,可以将任何BAT、CMD批处理脚本编译为EXE文件。使用了一下,果然可以。 Quick Batch File (De)Compiler使用非常简单: Quickbfc 文件名.bat 文件名.exe(将批处理命令编译为可执行文件) quickbfd 文件名.exe 文件名.bat(将可执行文件反编译为批处理命令) 然后,我们再按第一种方法通过Java 调用,即可。 BeanSoft 的实践备注: 因为我要实现调用其他目录里面的 BAT 文件, 具体说就是 Tomcat 的 startup.bat 文件, 目前可以证明的是如果程序启动目录位于 Tomcat 的 bin 目录下, 调用批处理文件没有问题, 而如果不在那个目录来调用 startup.bat, 那么就算使用 Quick Batch File (De)Compiler 也不能正常运行 BAT, 原因就是当前路径不对. OK, 问题集中在如何设置当前路径下了. 我们看看批处理环境的 start 的用法: start /? 启动另一个窗口运行指定的程序或命令。 START [title] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/WAIT] [/B] [command/program] [parameters] ??? title???? 在窗口标题栏中显示的标题。 path??????? 起始目录 B?????????? 在不创建新窗口的情况下开始应用程序。 除非 启动 ^C 处理,否则该应用程序会忽略 ^C 处理; ^Break 是唯一可以中断该应用程序的方式 I?????????? 新环境是传递给 cmd.exe 的原始环境, 而不是当前环境 MIN???????? 开始时窗口最小化 MAX???????? 开始时窗口最大化 SEPARATE??? 在分开的空间内开始 16 位 Windows 程序 SHARED????? 在分共享的空间内开始 16 位 Windows 程序 LOW???????? 在 IDLE 优先级类别开始应用程序 NORMAL????? 在 NORMAL 优先级类别开始应用程序 HIGH??????? 在 HIGH 优先级类别开始应用程序 REALTIME??? 在 REALTIME 优先级类别开始应用程序 ABOVENORMAL 在 ABOVENORMAL 优先级类别开始应用程序 BELOWNORMAL 在 BELOWNORMAL 优先级类别开始应用程序 WAIT??????? 启动应用程序并等候它结束 command/program 如果是内部 cmd 命令或批文件,那么该命令处理器是 用 /K 命令行开关运行 cmd.exe 的。这表示该窗口在命令运行 后仍然存在。 ??????????????? 如果不是内部 cmd 命令或批文件,则是一个程序,并 作为窗口应用程序或控制台应用程序运行。 ??? parameters? 这些为传送到命令/程序的参数 如果命令扩展名被启用,通过命令行或 START 命令的外部命令 调用会如下改变: 将文件名作为命令键入,非可执行文件??? 可以通过文件关联调用。 (例如, WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。 关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和 FTYPE 命令。

文档评论(0)

1亿VIP精品文档

相关文档