- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java 执行批处理文件解决方案
Java是种跨平台的语言,我们经常碰到需要通过Java调用windows下某些程序。有些第三方厂商如(ANT),也提供了调用windows下可执行程序的方法,但我们往往需要调用一些批处理命令。而Java却不提供。这里,我采用一种变相的调用方法,使得Java能调用批处理命令。 前期准备 Quick Batch File (De)Compiler 将任何BAT、CMD批处理脚本编译为EXE文件。 1、运行exe 文件 Java JDK里已经提供了调用的方法,不在累赘,代码如下。 try { String command = notepad; Process child = Runtime.getRuntime().exec(command); } catch (IOException e) { } 2、运行 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 的。这表示该窗口在命令运行???????
您可能关注的文档
- 50个令人叹为观止javascript应用站点.doc
- 5放大电路组成原则.ppt
- 5章 动画与处理技术.ppt
- 5.2 地理环境差异性.ppt
- 6061成分与性能.doc
- 6.系统瞬态响应分析.ppt
- 6S活动规划与实施.doc
- 7 Simple Questions with No Answers七件没有答案简单现象.ppt
- Xenu简单使用说明(培训).docx
- 8 第13章 领导基础.ppt
- 煤炭清洁高效燃烧技术环保标准与法规解读报告2025.docx
- 特色农产品加工园区建设社会稳定风险评估与农村电商监管政策研究报告.docx
- 2024年一级建造师矿业工程立井井壁后注浆浆液结石体抗渗等级现场测试练习.doc
- 2024年一级建造师公路工程钢箱梁正交异性桥面板U肋角焊缝全熔透深度验证练习.doc
- 2025年一级建造师港口工程自动化集装箱码头氢燃料AGV加氢站布局优化练习.doc
- 2024年一级建造师市政工程综合管廊电力舱高压电缆蛇形敷设张力实时控制练习.doc
- 2024年一级建造师通信工程5G室分系统功率分配器插入损耗记忆练习.doc
- 2024年一级建造师市政工程综合管廊投料口安全盖板气动支撑缸径选型计算练习.doc
- 2025年一级建造师市政工程顶管施工地面沉降控制要点练习.doc
- 2025年注册安全工程师烟花爆竹安全防静电技术措施练习.doc
文档评论(0)