`
忧里修斯
  • 浏览: 437277 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

JAVA如何执行DOS命令

阅读更多
JAVA如何执行DOS命令



      下面是一种比较典型的程序模式:

  
      ...

  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");

  这样写是不可能对的~
分享到:
评论

相关推荐

    Java执行dos命令

    在Java编程中,有时我们需要与操作系统进行交互,执行一些DOS命令,比如创建文件、删除文件、拷贝文件等。这种需求通常是通过Java的Runtime类或者ProcessBuilder类来实现的。下面将详细介绍如何使用Java执行DOS命令...

    Java执行DOS命令

    Java提供了一种方式来实现这个功能,通过`Runtime`类或者`ProcessBuilder`类来执行外部程序,包括DOS命令。本文将深入探讨如何使用Java执行DOS命令,并给出具体示例。 首先,`Runtime`类是每个Java应用程序都有的一...

    JAVA执行DOS命令分析

    在Java编程中,有时我们需要执行操作系统级别的任务,如运行DOS命令。这通常涉及到使用`Runtime`类的`exec()`方法。`Runtime.getRuntime().exec()`允许我们创建一个子进程来执行指定的命令或可执行程序。这个过程...

    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程序并将结果输出到窗口,同时结合Eclipse和Maven...

    JAVA如何调用DOS命令.doc

    在Java编程中,有时我们需要在程序中调用操作系统的一些功能,比如执行DOS命令,这通常是通过Java的`Runtime`类和`Process`类来实现的。本文将详细讲解如何在Java中调用DOS命令以及相关的注意事项。 首先,调用DOS...

    java 调用 dos 命令

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

    JAVA调用DOS命令.pdf

    这种交互可以实现多种功能,如获取 DOS 命令的标准输出和错误输出、阻塞当前 JAVA 线程直到命令执行完毕等。 在 JAVA 中,可以使用 Runtime 类的 exec 方法来执行 DOS 命令,该方法返回一个 Process 对象,该对象...

    java操作DOS命令

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

    java 执行外部 命令

    通过java执行底层dos命令,不是很全但是可以参考!

    JAVA中用到的DOS命令

    在学习JAVA的过程中,掌握一些基本的DOS命令是非常有帮助的。DOS,全称Disk Operating System,是一种早期的操作系统,尽管现在已经被更先进的Windows等图形界面操作系统所取代,但在命令行环境中执行某些任务,特别...

    Java零基础(JDK13) - 常用DOS命令 - cd回到上级以及回到根.md

    1. **使用Java代码执行DOS命令**:了解如何利用Java编程语言来执行操作系统级别的命令,如DOS命令。 2. **使用Java代码切换目录**:掌握如何通过编写Java代码来实现目录之间的切换。 3. **使用Java代码回到上级目录...

    java调用dos命令

    批处理文件通常包含一系列的DOS命令,通过Java调用这些文件可以执行更复杂的操作。以下是示例代码: ```java public class BatchFileRunner { public static void main(String[] args) { try { String ...

    JAVA如何调用DOS命令

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

    java获取各进程的信息

    ### Java通过Sigar库获取进程相关信息 在Java开发过程中,有时候我们需要监控系统资源或特定进程的状态,例如CPU使用率、内存占用情况等。这在服务器性能监控、问题排查等方面尤为重要。本文将详细介绍如何使用...

    关于java的常用dos命令

    在IT领域,尤其是在Java开发过程中,熟悉并掌握一系列的DOS命令是十分必要的,这不仅能够提高工作效率,还能在遇到问题时迅速定位并解决。以下是从“关于Java的常用DOS命令”这一主题中提炼出的关键知识点,这些知识...

    Java编写的dos命令执行器

    用Java编写的一个小工具,可以执行cmd命令,并将执行结果打印出来

Global site tag (gtag.js) - Google Analytics