`
hwei_344370758
  • 浏览: 21631 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java调用dos命令

阅读更多
用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序模式:
    ...
    Process process = Runtime.getRuntime().exec(".\\p.exe");
    process.waitfor( );
    ...
    在上面的程序中,第一行的“.\\p.exe”是要执行的程序名,Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。通过Process可以控制该子进程的执行或获取该子进程的信息。第二条语句的目的等待子进程完成再往下执行。
    但在windows平台上,如果处理不当,有时并不能得到预期的结果。下面是笔者在实际编程中总结的几种需要注意的情况:
    1、执行DOS的内部命令
    如果要执行一条DOS内部命令,有两种方法。一种方法是把命令解释器包含在exec()的参数中。例如,执行dir命令,在NT上, 可写成exec("cmd.exe /c dir"),在windows 95/98下,可写成“command.exe /c dir”,其中参数“/c”表示命令执行后关闭Dos立即关闭窗口。另一种方法是,把内部命令放在一个批命令my_dir.bat文件中,在Java程序中写成exec("my_dir.bat")。如果仅仅写成exec("dir"),Java虚拟机则会报运行时错误。前一种方法要保证程序的可移植性,需要在程序中读取运行的操作系统平台,以调用不同的命令解释器。后一种方法则不需要做更多的处理。

    2、打开一个不可执行的文件
    打开一个不可执行的文件,但该文件存在关联的应用程序,则可以有两种方式。 以打开一个word文档a.doc文件为例,Java中可以有以下两种写法:
    exec("start .\\a.doc");
    exec(" c:\\Program Files\\Microsoft Office\\office\\winword.exe .\\a.doc");
    显然,前一种方法更为简捷方便。

    3、执行一个有标准输出的DOS可执行程序
    在windows平台上,运行被调用程序的DOS窗口在程序执行完毕后往往并不会自动关闭,从而导致Java应用程序阻塞在waitfor( )。导致该现象的一个可能的原因是,该可执行程序的标准输出比较多,而运行窗口的标准输出缓冲区不够大。解决的办法是,利用Java提供的Process类提供的方法让Java虚拟机截获被调用程序的DOS运行窗口的标准输出,在waitfor()命令之前读出窗口的标准输出缓冲区中的内容。一段典型的程序如下:
    ...
    String ls_1;
    Process process = Runtime.getRuntime().exec("cmd /c dir \\windows");
    BufferedReader bufferedReader = new BufferedReader( \
    new InputStreamReader(process.getInputStream());
    while ( (ls_1=bufferedReader.readLine()) != null)
    System.out.println(ls_1);
     
    process.waitfor( );
    ...

    今天在做客户端程序的自动更新,简单描述一下,就是从服务器上将更新包下载下来,然后在本地解压缩,最后删掉~功能很简单~

    但是问题出在使用JAVA的ZIP模块做文件的解压缩不是想象的那么简单,资源需要释放,一个不小心就没有办法删除掉原有ZIP文件了~资源的占用确实是个大问题,但是好在,客户端程序更新完是要重启的,一切都烟消云散了~对于删除不掉ZIP文件的问题,我也流氓一下~用DEL硬删除~此处一定要注意!

    Process process = Runtime.getRuntime().exec("cmd /c del f:\\aaa.doc");
    这样的调用是没有问题。

    Process process = Runtime.getRuntime().exec("del f:\\aaa.doc");
    这样写是不可能对的。




http://blog.csdn.net/cctt_1/archive/2008/11/14/3300789.aspx
http://oreilly.com.cn/book.php?bn=7-5083-1417-4
分享到:
评论

相关推荐

    java调用DOS命令

    Java调用DOS命令是指在Java程序中执行操作系统级别的命令,比如Windows下的CMD命令或Linux下的Shell命令。这种功能在很多场景下都很有用,比如自动化脚本、文件操作、系统管理等。Java提供了Runtime类和...

    java 使用dos命令详解

    ### Java使用DOS命令详解 在Java开发过程中,有时候我们需要执行一些特定的操作系统命令来完成特定的任务,尤其是在Windows平台上。本文将详细介绍如何在Java中调用DOS命令,并通过具体的示例来阐述这一过程。 ###...

    java 调用 dos 命令

    Java调用DOS命令主要涉及Java的Runtime类和ProcessBuilder类,这两个类允许Java程序执行外部命令,也就是我们常说的DOS命令或者Windows命令行指令。这个过程通常被称为进程交互或者系统调用。 首先,Runtime类是每...

    JAVA如何调用DOS命令.doc

    如果遇到删除ZIP文件失败的问题,可以使用DOS命令`del`进行硬删除,但需要注意的是,直接调用`"del f:\\aaa.doc"`可能不会成功,应使用`"cmd /c del f:\\aaa.doc"`确保命令被正确解析和执行。 总之,Java调用DOS...

    JAVA调用DOS命令.pdf

    JAVA 调用 DOS 命令是指在 JAVA 程序中执行 DOS 命令,实现了 JAVA 程序与 DOS 命令的交互。这种交互可以实现多种功能,如获取 DOS 命令的标准输出和错误输出、阻塞当前 JAVA 线程直到命令执行完毕等。 在 JAVA 中...

    JAVA如何调用DOS命令

    "JAVA如何调用DOS命令" 本文将详细介绍如何使用 Java 调用 DOS 命令,从基本概念到实践应用,总结了几种需要注意的情况,并提供了相应的解决方案。 调用DOS命令的基本概念 在 Java 中,可以使用 Runtime 类和 ...

    Java执行dos命令

    下面将详细介绍如何使用Java执行DOS命令以及相关知识点。 一、Runtime类 Runtime类是每个Java应用程序都有的一个实例,它提供了执行系统命令的方法。我们可以通过getRuntime()方法获取到Runtime实例,然后调用exec...

    JAVA执行DOS命令分析

    在Java和C#中调用DOS命令的方式略有不同。在Java中,我们使用`Runtime.exec()`,而在C#中,我们可以使用`System.Diagnostics.Process`类。虽然两者都提供了执行外部命令的能力,但在具体实现和异常处理上可能存在...

    Java执行DOS命令

    本文将深入探讨如何使用Java执行DOS命令,并给出具体示例。 首先,`Runtime`类是每个Java应用程序都有的一个实例,它允许程序与正在执行它的环境进行交互。我们可以通过`Runtime.getRuntime().exec()`方法来执行DOS...

    Java调用应用程序和Dos中的命令

    #### 四、Java调用DOS命令 在Windows环境下,我们经常需要调用DOS命令来完成一些特定的任务,如查看网络状态(`ipconfig`)、查看系统信息(`systeminfo`)等。这些操作同样可以通过`Runtime.exec()`来实现。 ##### ...

    java调用DOS获得系统进程列表

    ### 使用Java调用DOS命令获取系统进程列表 在日常的软件开发与系统管理工作中,经常需要通过编程的方式来获取或操作系统的相关信息。本篇文章将详细解释如何利用Java语言调用DOS命令来获取Windows系统的进程列表。...

    JAVA中用到的DOS命令

    对于Java开发者来说,了解和熟练使用DOS命令可以提高开发效率和解决问题的能力。 首先,DOS的特点体现在其简单的用户交互方式。启动DOS后,用户会看到一个命令提示符,形如"C:\>",在这里,你可以输入命令来操控...

    java如何调用dos名称

    通过Java调用DOS命令,开发者可以实现很多实用的功能,例如文件操作(如复制、移动、删除)、系统信息查询、启动其他应用程序等。然而,这种方式也存在安全风险,因为执行的命令可能会对系统造成影响,因此在实际...

    java操作DOS命令

    Java操作DOS命令主要指的是通过Java程序调用操作系统(如Windows、Linux等)的命令行接口,执行系统级别的操作。这种技术在很多场景下都非常实用,例如自动化测试、系统管理或者进行一些系统级别的数据处理。下面...

    java调用DOS

    通过以上介绍,我们可以看出Java调用DOS命令是通过与操作系统进行交互,实现更丰富的功能,如系统管理、文件操作等。不过,这种方式应谨慎使用,因为执行不受控制的外部命令可能存在安全风险,可能导致数据丢失或被...

    JAVA-DOS-command.rar_DOS java_dos command_java dos_shelf

    总的来说,Java调用DOS命令的能力使得开发者能够在Java程序中集成系统级别的操作,极大地扩展了其功能。熟练掌握这一技术,可以帮助我们更好地将Java与操作系统环境结合,实现更复杂的应用场景。

    java调用windows命令

    以下是如何使用Java调用Windows命令行的详细步骤和注意事项: 1. **调用外部程序** - 使用`Runtime.getRuntime().exec()`方法创建一个子进程来执行指定的可执行程序。例如: ```java Process process = Runtime....

Global site tag (gtag.js) - Google Analytics