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

Java 在windows上操作系统文件与程序,执行系统命令等的技巧

    博客分类:
  • Java
阅读更多
很多时候,我们只是需要在java程序中帮助用户打开一个文本文件,或者打开一个URL,或者是一份word文档,等等! 一种自然而直接的方法就是使用 Runtime.getRuntime().exec() .

但是在实际使用中,总是会或多或少地出现很多问题,这里就简单总结一些常用的命令!

先说明几点细节:

一 exec()方法有很多重载版本,常用的方式是将所有命令以一个String对象传递给exec() ; 另一种方式是将cmd命令的各个部分包装成String [] ,然后将此数组传递给exec() !

二 在windows上,文件名或者文件夹命中有空格时,可以采用将该名称放入双引号内的办法来避免出错!


PS:windows中的程序很少会被使用cmd来启动,大家已经很习惯于双击了,所以常用程序不一定有统计的命名,这一点不同于linux上的vi等! 因此,请大家一定要熟悉windows  cmd下的一个特殊命令“start”;另外,cmd在windows的很多版本里,其实就是 cmd.exe !


1 调用记事本(或系统默认的文本程序)打开简单文本文件:

Runtime.getRuntime().exec("cmd.exe /c start filename.txt ");


2 调用ms word打开文本文件:
Runtime.getRuntime().exec("cmd.exe /c start winword.exe filename.doc ");


3 打开一个windows目录:
Runtime.getRuntime().exec("cmd.exe /c start  dirname ");


4 打开一个url :
Runtime.getRuntime().exec("cmd.exe /c start  http://www.google.com ");


5 打开默认的邮件程序并给xxx发送邮件;
Runtime.getRuntime().exec("cmd.exe /c start  mailto:xxx@xxx.com ");


6 执行程序并捕获其标准输出:
Process p = Runtime.getRuntime().exec("start .\\xxx.exe");
p.waitfor();



注:此法亦可用来解决调用程序后其CMD黑色窗口不自动关闭的问题! 同时,如果被调用程序的执行需要消耗一段时间,则应该在exec()之后调用其返回的Process 对象的waitfor()方法来等待该程序的执行。例如:
Process p = Runtime.getRuntime().exec("start .\\xxx.exe");
p.waitfor();



再强调一点:

start 后面的命令如果包含空格,请一定使用双引号,并且必须紧跟在 start 后多添加一个以双引号引起来的参数作为start的title ; 因为start命令会把其后的第一个使用双引号的参数作为新cmd窗口的title !!!

   OVER !   还有相关问题,可以继续讨论!
分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java jdk实列宝典 光盘源代码

    15 applet java可以编写两类程序,applications和applet,applications可以在控制台直接运行,与其他高级编程语言没有太大区别,而java的特色在于它具有编制小应用程序的功能,applet可以在internet上传输并在兼容...

    JAVA实验报告一.docx

    可以下载支持Microsoft Windows操作系统的jdk-1_5_0-windows-i586.exe到本地硬盘。 JAVA实验报告一全文共10页,当前为第2页。 JAVA实验报告一全文共10页,当前为第2页。 安装的时候可以选择安装到任意的硬盘驱动器上...

    PERL语言编程

    要想写可移植的 <br/>shell,你可能要记住每条命令在每种操作系统上的语法,走运的时候你可能可以找到一些公共的东西。而要想写可移植的 Visual Basic 程序,那么你只需要对“移植”有个更灵活的定义就可以了。...

    操作系统(内存管理)

    free:该函数获得指向由 malloc 分配的内存片段的指针,并将其释放,以便以后的程序或操作系统使用(实际上,一些 malloc 实现只能将内存归还给程序,而无法将内存归还给操作系统)。 物理内存和虚拟内存 要理解...

    Editplus 3[1].0

    要运行已编译的 Java 类文件,你可以进行如下设置: 菜单文本:Java 命令:c:\java\bin\java.exe 参数:$(FileNameNoExt) 初始目录:$(FileDir) “命令”部分应当替换为实际的 Java 解释器的路径。 例子 2. Borland...

    网管教程 从入门到精通软件篇.txt

    如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart  创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。  diskpart [ /add |/delete] [device_...

    Tcl_TK编程权威指南pdf

    该函数库实现了基本的解释器,它有一套实现变量、流程控制和过程的核心脚本命令,而且还有一组用来存取操作系统服务以运行其他程序、存取文件系统和使用网络套接字的命令。Tcl和Tk提供了一台可以在UNIX、Windows和...

    计算机程序的正确定义

    程序(program)是为实现特定目标或解决特定... 在大多数计算机中,操作系统例如视窗等,加载并且执行很多程序。在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。

    Java虚拟机

    全书共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、...

    游戏画面就弹出内存不能为read修复工具

    使用Windows操作系统的人有时会遇到这样的错误信息: 「“0X????????”指令引用的“0x00000000”内存,该内存不能为“read”或“written”」,然后应用程序被关闭。 如果去请教一些「高手」,得到的回答往往是「...

    C#微软培训资料

    2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 ...

    editplus 代码编辑器html c++ jsp css

    这是因为 EditPlus 的语法是设置文件采用的是绝对路径,而在你设置了语法文件之后,再把程序复制到其它目录,因而导致 EditPlus 无法找到该语法文件。 解决办法: 在主程序目录里,找到 Setting.ini 这是 EditPlus ...

    RED HAT LINUX 6大全

    14.8.3 在Windows客户上加载共享 253 14.9 公用smb.conf配置选项 253 14.9.1 特殊约定 254 14.9.2 read Only=Versus writeable=Versus writable=Versus write ok=(S) 254 14.9.3 valid users=(S) 254 14.9.4 ...

    EditPlus 2整理信箱的工具

    要运行已编译的 Java 类文件,你可以进行如下设置: 菜单文本:Java 命令:c:\java\bin\java.exe 参数:$(FileNameNoExt) 初始目录:$(FileDir) “命令”部分应当替换为实际的 Java 解释器的路径。 例子 2. Borland...

    Oracle数据库管理员技术指南

    3.1.7 在磁带上直接导出和导入数据 3.1.8 估计导出文件的大小 3.1.9 直接导出压缩文件 3.1.10 从压缩导出文件中直接导入 3.1.11 创建一致的导出文件 3.1.12 检查导出/导入错误 3.1.13 用导出和导入管理区 ...

Global site tag (gtag.js) - Google Analytics