`
superseven
  • 浏览: 109380 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java 调用DOS命令的使用小结

 
阅读更多
这两天在改一个CMS问题的时候,需要使用到文件的copy,但是直接使用纯java的话存在的文件流的读写,如果在写文件流的过程中,写的文件被人访问到,那么此时该文件被是一个空文件,因此为了避免这种情况的发生考虑使用直接调用dos的move命令来完成文件的移动。
      在网上找了很多的资料,拿了段代码
           String cmd = "move c:\\1.txt d:\\";
           Runtime.getRuntime().exec(cmd);      
但是调试的发现怎么也执行不了,但是这个命令在dos里执行是没有问题的,然后继续找资料,发现必须调用cmd.exe才可以,因此代码又改成了
           String cmd = "cmd move c:\\1.txt d:\\";
           Runtime.getRuntime().exec(cmd);     
继续测试发现还是不行,发现程序在一直在执行,但是不会在执行完毕后关闭,找了半天也没找到资料,于是去检查这个命令在java中调用时跟其他的语句是否一样,发现在调用dir命令 的时候是这样的
          String cmd = "cmd /c dir";
刚开始还以为/c是用来表示c盘的盘符,所以没注意,后来查了资料才发现/c不是用来表示盘符而是表示执行字符串指定的命令然后中断,看了这个之后我才恍然大悟,之前程序为什么一直在吊着,后来我改了下
           String cmd = "cmd /c move c:\\1.txt d:\\";
           Runtime.getRuntime().exec(cmd);    
一次性执行通过,仔细阅读了资料,cmd之后还是有很多参数可以选择,如下所示:
/C      执行字符串指定的命令然后终断
/K      执行字符串指定的命令但保留
/S      在 /C 或 /K 后修改字符串处理(见下)
/Q      关闭回应
/D      从注册表中停用执行 AutoRun 命令(见下)
/A      使向内部管道或文件命令的输出成为 ANSI
/U      使向内部管道或文件命令的输出成为 Unicode
/T:fg   设置前景/背景颜色(详细信息,请见 COLOR /?)
/E:ON   启用命令扩展(见下)
/E:OFF  停用命令扩展(见下)
/F:ON   启用文件和目录名称完成字符 (见下)
/F:OFF  停用文件和目录名称完成字符(见下)
/V:ON   将 ! 作为定界符启动延缓环境变量扩展。如: /V:ON 会
        允许 !var! 在执行时允许 !var! 扩展变量 var。var 语法
        在输入时扩展变量,这与在一个 FOR 循环内不同。
/V:OFF  停用延缓的环境扩展。
   通过这些参数我们可以在不同的场景下使用不同的参数,然java顺利的调用到命令
 
参考资料:http://topic.csdn.net/u/20100713/20/601698c8-9132-4122-8336-79de256ca4e7.html
分享到:
评论

相关推荐

    java调用dos命令

    总结,通过Java调用DOS命令,我们可以轻松地实现与操作系统的交互,完成如创建文件夹、复制文件、运行批处理文件等任务。这使得Java程序具有更广泛的适用性,能够处理更多系统级别的操作。在实际开发中,要注意处理...

    JAVA如何调用DOS命令

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

    JAVA执行DOS命令分析

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

    Java执行dos命令

    总结,Java执行DOS命令主要涉及Runtime类和ProcessBuilder类的使用,包括创建进程、读取输出、异常处理等多个方面。理解并熟练运用这些知识点,可以让我们在Java程序中更加自如地与操作系统交互。

    Java零基础 - DOS命令del.md

    执行这段代码时,会调用DOS命令`del`来删除指定路径下的文件。 4. **检查结果**:最后一步是验证文件是否被成功删除。可以在指定的路径下手动检查文件是否存在,或者通过其他编程手段(如使用Java的`File`类的方法...

    java实现控制dos清屏cls

    在Java中,我们通常不能直接调用DOS的cls命令,但可以通过一些技巧来实现类似的效果。 标题"java实现控制dos清屏cls"所指的是如何在Java程序中模拟DOS的清屏操作。这里提供了一种解决方案,包括两个关键文件:CLS....

    Java调用Windows的DOS命令的方法

    总结来说,Java调用Windows的DOS命令主要依赖于`Runtime.exec()`方法,通过创建一个进程来执行命令,并通过输入/输出流来交互。通过这个方法,开发者可以执行各种DOS命令,获取命令执行结果,从而实现Java程序与操作...

    Java零基础(JDK13) - 常用DOS命令 - 打开DOS窗口以及mkdir命令.md

    2. **如何使用Java代码执行DOS命令**:掌握如何在Java中通过调用外部进程来执行DOS命令。 3. **如何使用Java代码创建文件夹**:学会利用Java编写脚本,通过DOS命令`mkdir`创建新文件夹。 #### 阅读建议 为了更好地...

    Java模仿DOS界面(cmd程序) (Demo)

    在Java编程语言中,模拟DOS...总结来说,Java模仿DOS界面(cmd程序)涉及的关键技术包括`ProcessBuilder`、`Process`类的使用,以及控制台输入输出的处理。这样的Demo对于学习Java系统编程和理解操作系统交互非常有帮助。

    Java 执行Dos程序,结果显示到窗口

    在Java编程中,有时我们需要执行操作系统级别的命令,例如DOS命令,这通常通过Java的`Runtime`类或者`ProcessBuilder`类来实现。本篇将详细介绍如何在Java中执行DOS程序并将结果输出到窗口,同时结合Eclipse和Maven...

    java程序调用bat文件,执行oracel数据库备份

    首先,我们需要理解Java调用外部程序的基本原理。在Java中,我们可以使用`Runtime`类或`ProcessBuilder`类来执行操作系统级别的命令,例如运行bat文件。以下是一个简单的示例,展示如何使用`Runtime.getRuntime()....

    jap调用应用程序

    ### jap调用应用程序 ...通过使用Java提供的`Runtime`类,开发者可以轻松地调用DOS命令或其他应用程序。这种方法不仅增强了Java程序的功能性,还提高了开发灵活性。希望本文能够帮助开发者更好地理解和应用这些技术。

    解决java执行cmd命令调用ffmpeg报错Concat error - No such filter '[0,0]'问题

    4. **使用ffmpeg的Java库**:如果可能,使用专门为Java设计的ffmpeg库,如`Xuggler`或`JAVE2`,可以更方便地处理音频和视频操作,而不需要直接调用外部命令。 总结来说,当在Java中执行ffmpeg命令遇到问题时,需要...

    java_dos_shell_bat

    总结来说,Java通过`Runtime`和`ProcessBuilder`类提供了强大的能力来执行DOS命令、Shell脚本和BAT文件,这使得Java应用程序能够方便地与操作系统进行交互,扩展其功能。在实际开发中,根据具体需求选择合适的方法,...

    java中调用C++生成的DLL

    然而,给定的描述中提到了使用Java调用C/C++生成的动态链接库(DLL)的过程,这与描述部分的内容有所偏差。接下来,我们将基于给定的部分内容详细探讨如何在Java中调用由C/C++编写的DLL。 #### 一、生成C的头文件 ...

    Java JNI调用DLL方法

    在Java中,使用`javah`命令可以生成C/C++头文件,这个文件定义了Java本地方法对应的C/C++函数原型。 例如,在DOS命令行中,你需要进入`classes`目录并执行: ```bash javah calldll.CallAlarmTTSDll ``` 这将生成一...

    java获取各进程的信息

    下面通过一个示例程序来具体说明如何使用Sigar来获取进程的PID、用户、启动时间、大小、所占内存、状态、运行时间、CPU使用率以及命令等信息。 #### 示例代码分析 ```java private static final int SLEEP_TIME = ...

    dos命令测试发送邮件jar包

    标题中的“dos命令测试发送邮件jar包”表明我们要讨论的是如何在DOS命令行环境下,利用JavaMail API通过jar包来发送电子邮件。JavaMail是一个开源的Java库,它提供了与邮件服务器交互的能力,包括发送、接收邮件以及...

    java dos界面实现的简单的文件复制、创建

    虽然使用DOS命令在某些情况下很方便,但它们并不是Java中处理文件操作的最佳实践。Java提供了丰富的I/O API,如`java.nio`包中的类,它们提供了更强大且更安全的文件操作功能。例如,我们可以使用`Files.copy()`方法...

Global site tag (gtag.js) - Google Analytics