很多时候,我们只是需要在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/cstartfilename.txt");
Runtime.getRuntime().exec("cmd.exe /c start filename.txt ");
2 调用ms word打开文本文件:
- Runtime.getRuntime().exec("cmd.exe/cstartwinword.exefilename.doc");
Runtime.getRuntime().exec("cmd.exe /c start winword.exe filename.doc ");
3 打开一个windows目录:
- Runtime.getRuntime().exec("cmd.exe/cstartdirname");
Runtime.getRuntime().exec("cmd.exe /c start dirname ");
4 打开一个url :
- Runtime.getRuntime().exec("cmd.exe/cstarthttp://www.google.com");
Runtime.getRuntime().exec("cmd.exe /c start http://www.google.com ");
5 打开默认的邮件程序并给xxx发送邮件;
- Runtime.getRuntime().exec("cmd.exe/cstartmailto:xxx@xxx.com");
Runtime.getRuntime().exec("cmd.exe /c start mailto:xxx@xxx.com ");
6 执行程序并捕获其标准输出:
- Processp=Runtime.getRuntime().exec("start.\\xxx.exe");
- p.waitfor();
Process p = Runtime.getRuntime().exec("start .\\xxx.exe");
p.waitfor();
注:此法亦可用来解决调用程序后其CMD黑色窗口不自动关闭的问题! 同时,如果被调用程序的执行需要消耗一段时间,则应该在exec()之后调用其返回的Process 对象的waitfor()方法来等待该程序的执行。例如:
- Processp=Runtime.getRuntime().exec("start.\\xxx.exe");
- p.waitfor();
Process p = Runtime.getRuntime().exec("start .\\xxx.exe");
p.waitfor();
再强调一点:
start 后面的命令如果包含空格,请一定使用双引号,并且必须紧跟在 start 后多添加一个以双引号引起来的参数作为start的title ; 因为start命令会把其后的第一个使用双引号的参数作为新cmd窗口的title !!!
分享到:
相关推荐
【标题】"java 计算器(仿windows系统)"是一个使用Java编程语言开发的计算器应用程序,它旨在模仿Windows操作系统的计算器风格,提供一个用户友好的界面和基本的计算功能。这个项目展示了如何使用Java进行图形用户...
2. **Windows API**: Windows API是微软为Windows操作系统提供的一系列函数和数据结构,用于程序与操作系统交互。在Java中使用Windows API,可以执行诸如打开、编辑、保存Office文档等操作。 3. **Office ...
批处理命令是Windows操作系统中的一种脚本语言,用于自动化执行一系列命令。在IT领域,特别是在系统管理和软件开发中,批处理命令被广泛用于简化重复性的任务。本篇将深入讲解如何编写批处理命令来执行JAVA文件,...
在Java开发中,将应用程序发布为Windows服务是常见的需求,特别是在需要后台长期运行且自动启动的应用场景下。本文将深入探讨如何使用Java实现这一功能。 首先,我们需要理解什么是Windows服务。Windows服务是一种...
Java的“Write Once, Run Anywhere”(WORA)特性使得用Java编写的定时关机程序能够在安装了Java运行环境的不同操作系统上运行,只需要适当地调整命令参数以适应不同的操作系统命令。 然而,这个简陋的程序可能不包含...
在Windows操作系统中,命令行工具通常被称为CMD。 #### Java程序的编译与运行 Java程序的编译和运行主要涉及两个命令:`javac` 和 `java`。`javac` 是Java编译器,用于将Java源代码(.java文件)编译成字节码文件...
当我们需要在Windows服务器上部署Java应用程序时,通常会将应用打包成JAR(Java Archive)文件,以便于分发和执行。本教程将详细介绍如何在Windows服务器上实现JAR程序的一键发布和运行。 首先,我们需要理解JAR...
在本文中,我们将深入探讨如何使用Java语言来模拟Windows操作系统中的记事本程序。这个项目不仅涉及到了Java的基础知识,还涵盖了文件操作、GUI设计、事件处理等多个关键领域。让我们一起详细了解一下这些知识点。 ...
DOS(Disk Operating System)是早期个人计算机上广泛使用的操作系统,尽管现在已经被Windows等现代操作系统取代,但了解DOS命令仍然很有价值,因为它可以帮助我们理解操作系统的基本操作和文件管理。在DOS中,我们...
在Java Spring框架中,开发人员经常需要根据不同的操作系统执行特定的操作,例如运行特定的脚本或命令。这个“JAVA-spring学习资源之编程实现操作系统匹配条件”提供了如何在Spring应用中实现这一功能的教学资料。...
在Windows环境下,我们可以创建一个批处理文件(扩展名为`.bat`),包含启动Java应用程序的命令,例如`java -jar Snow.jar`,让用户只需双击批处理文件即可运行桌面飘雪程序。 程序的实现可能依赖于Java的图形用户...
要开发出真正意义上的跨平台Java程序,除了掌握基本的编程技巧外,还需要关注一系列细节,包括但不限于JDK版本的选择、IDE的选用、文件路径的标准化处理、网络资源的访问方式、字符编码的统一以及图形用户界面的设计...
在Java开发过程中,集成开发环境(IDE)如Eclipse、IntelliJ IDEA和NetBeans等提供了极大的便利,但有时我们可能需要在没有IDE的情况下进行编译和运行Java程序。这通常发生在初学者学习阶段,或者在某些特定的开发...
通过遵循这些指导原则,可以提高Java程序的跨平台兼容性,确保其在Windows、Linux、Mac OS等操作系统上都能正常运行。在设计和编写代码时,始终考虑可移植性,可以降低后期维护和升级的成本,提升程序的灵活性和可靠...
另外,`.bat`文件是Windows操作系统下的批处理文件,用于执行一系列命令。`打开时钟.bat`可能是启动Java时钟程序的脚本,内容可能类似于: ```batch @echo off java Clock ``` 这行命令将关闭命令提示符的回显功能...
在Windows操作系统中,CMD.EXE是一个非常重要的命令行界面工具,它提供了用户与操作系统交互的方式,允许执行各种系统命令、管理文件和运行程序。VB(Visual Basic)是Microsoft开发的一种面向对象的编程语言,以其...
标题中的“参考资料-基于java语言的windows环境下pc机与单片机通信.zip”指的是一个包含详细教程或指南的压缩文件,该文件旨在教授如何在Windows操作系统下使用Java编程语言实现PC机与单片机之间的通信。这个主题...
`bat`是Microsoft Windows操作系统中的批处理文件格式,它允许用户编写一系列命令行指令并将其存储为单个文件,方便执行。通过创建一个`.bat`文件,你可以自动化日常的系统任务,如启动程序、复制文件或者执行复杂的...
这不仅可以简化Java应用程序的开发过程,还能确保程序能够在不同的操作系统上稳定运行。通过上述指南,您可以轻松地在自己的开发环境中配置好Java环境,从而更加专注于应用程序本身的开发工作。