15年行业经验 一站式解决方案 大型活动策划公司
免费咨询热线: 4007181001

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

发布时间:2020-06-01 20:05   点击量:

Java是一种跨平台语言。我们经常需要通过Java在windows下调用一些程序。一些第三方供应商如(ANT)也提供了在windows下调用可执行程序的方法,但是我们经常需要调用一些批处理命令。Java没有。在这里,我使用了一个伪装的调用方法来使Java能够调用批处理命令。

工具/原材料快速批处理文件(De)编译器

步骤/方法1运行exe文件。

Java JDK已经提供了调用方法,这并不麻烦。代码如下。

请尝试{字符串命令= & quot记事本;进程子级=运行时. getRuntime()。exec(命令);}捕捉(异常e){

}

2运行蝙蝠文件。

Java还不支持批处理文件。起初,我一直在研究Java如何调用批处理文件,但我仍然找不到解决方案。后来,我们不得不绕过批处理,考虑如何将批处理转换成exe可执行文件。然后通过Java调用可执行文件。

搜索谷歌并找到快速批处理文件(De)编译器,它可以将任何Bat和CMD批处理脚本编译成EXE文件。使用一段时间后,它真的起作用了。

快速批处理文件(De)编译器使用非常简单:

Quickbfc文件名。bat文件名。exe(将批处理命令编译成可执行文件)

Quickbfd文件名。exe文件名。bat(将可执行文件反编译成批处理命令)

然后,我们可以按照第一种方法通过Java调用。

因为我想调用其他目录中的bat文件,特别是Tomcat的startup.bat文件,目前可以证明的是,如果程序启动目录位于Tomcat的bin目录中,调用批处理文件没有问题,但是如果它不在那个目录中调用startup.bat,那么即使您使用快速批处理文件(De)编译器,您也不能正常运行BAT,因为当前路径不正确。好的,问题集中在如何设置当前路径。让我们看看批处理环境中start的用法:

开始/?启动另一个窗口来运行指定的程序或命令。

开始[标题] [/路径][/我][/最小][/最大][/分离|/共享][/低|/正常|/高|/实时|/高于正常|/低于正常][/等待][/B][命令/程序][参数]

"标题窗口标题栏中显示的标题。路径启动目录B启动应用程序,而不创建新窗口。除非开始C处理,否则应用程序将忽略C处理;如果新环境是传递给cmd.exe的原始环境,^Break是中断应用程序的唯一方法。代替当前环境最小启动窗口最小化最大启动窗口最大化单独启动16位窗口程序共享启动16位窗口程序低启动空闲优先级类别正常启动应用高启动应用正常优先级类别启动应用高优先级类别实时启动应用实时优先级类别高于正常启动应用低于正常启动应用低于正常启动应用等待启动应用并等待其结束命令/如果程序是内部cmd命令或批处理文件,则命令处理器使用/K命令行开关运行cmd.exe。这意味着该窗口在命令运行后仍然存在。

如果它不是内部cmd命令或批处理文件,它就是一个程序,并作为窗口应用程序或控制台应用程序运行。

参数这些是传递给命令/程序的参数

如果启用了命令扩展,通过命令行或START命令进行的外部命令调用将发生如下变化:

键入文件名作为命令,不可执行文件可以通过文件关联来调用。(例如,WORD。DOC调用与。文件扩展名)。有关如何从命令脚本中创建这些关联,请参见ASSOC和FTYPE命令。

当正在执行的应用程序是32位图形用户界面应用程序时,CMD.EXE会在应用程序终止前返回一个命令提示符。如果在命令脚本中执行,新行为将不会发生。

如果执行的命令行的第一个符号是字符串“没有扩展名或路径修饰符;CMD,& quotCMD将被COMSPEC变量的值替换。这可以防止从当前目录中捕获CMD.EXE。

如果执行的命令行的第一个符号没有扩展名,CMD.EXE使用PATHEXT环境变量的值来确定以何种顺序查找哪个扩展名。PATHEXT变量的默认值是:

。通讯;。EXE。最佳可得技术;。煤矿管理局

请注意,该语法与PATH变量相同,用分号分隔不同的元素。

在查找可执行文件时,如果没有匹配的扩展名,请查看该名称是否与目录名匹配。如果是,START将调用该路径上的资源管理器。如果从命令行执行,它相当于该路径上的光盘。

您可以看到/Dpath选项可以指定要运行的当前目录,因此要运行的最后一条命令语句是:cmd /c start /D"。D:\ Tomcat 5.0 \ bin \ & quot;蝙蝠,好了,问题成功解决了。

代码:

?123456789101112131415161718192021222324 & lt;/p>。& ltp align = & quot向左>。/* * @(#)TestRun . Java 1.002005-7-21 * * CopyRights 2006 BeanSoft @ 126 . com . Alllightsreservered . * PROPECTIVE/SECRETARITY . useissuebjecttolicenseterms . *//* * * * * *//* * * TestRun,测试执行批处理文件。* @ author ibbean soft * @ version 1 . 002005-7-21 */public class testrun { public static void main(string[)参数){try {runtime.getruntime()。exec(“cmd/cstart/D。d:\ \假类别5。0\\bin\\\ "。startup .蝙蝠);} catch(Exception one){ e . PrintStackTrace();} } & lt/p>。& ltp align = & quot向左>。0

结束语80ticking.com搜索“JAVA执行器文件”

相关推荐