package com.nantian.itbms;
/**
* 执行windows 命令或unix shell命令
* @author panhong
*
*/
public class WinUnixShell {
public static void main(String[] args0) {
String cmd="ping www.163.com";
// String cmd="ipconfig";
//String cmd = "ping 192.168.0.1";
// String cmd="ipconfig";
String result;
try {
result = exec(cmd);
System.out.println("返回:\r\n" + result);
} catch (Exception e) {
System.out.println("执行出错:\r\n" + e.getMessage());
}
}
/**
* 执行window cmd或unix shell命令,如ipconfig
*
* @param youCmd
* @return 执行命令状态
* @throws Exception
*/
public static String exec(String youCmd) throws Exception {
String msg = null;
if (youCmd == null || youCmd.length() < 1) {
throw new Exception("请输入有效命令行命令");
}
try {
hostInfo hostInfo = new hostInfo();
String osName = hostInfo.getsysTYpe();
String[] cmd = new String[3];
if (("Windows 2000").equalsIgnoreCase(osName)
|| "Windows XP".equalsIgnoreCase(osName)) {
cmd[0] = "cmd.exe";
cmd[1] = "/C";
cmd[2] = youCmd;
} else if (osName.equals("Windows 95")) {
cmd[0] = "command.com";
cmd[1] = "/C";
cmd[2] = youCmd;
}
if(osName.indexOf("unix")!=-1){ //unix操作系统
cmd[0] = "ls";
cmd[1] = "/C";
cmd[2] = youCmd;
}
System.out.println("cmd:\r\n" + cmd[0] + " " + cmd[1] + " " +
cmd[2]);
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(cmd);
InputStreamPipe errorGobbler = new InputStreamPipe(proc
.getErrorStream(), "ERROR");
InputStreamPipe outputGobbler = new InputStreamPipe(proc
.getInputStream(), "OUTPUT");
errorGobbler.start();
outputGobbler.start();
int exitVal = proc.waitFor();// 等待事情干完,返回值0表示正确返回
if (exitVal != 0) {
msg = "失败";
throw new Exception(errorGobbler.getOutputMsg()
+ "(异常退出值exitVal=" + exitVal + ")");
} else {
msg = outputGobbler.getOutputMsg();//返回命令执行结果
}
} catch (Exception e) {
throw new Exception(e.getMessage());
}
return msg;
}
}
分享到:
相关推荐
这个方法允许Java程序在运行时执行外部程序或命令。例如,如果我们要在CMD中打开一个.doc文件,可以这样做: ```java String command = "wordpad.exe path_to_your_file.doc"; try { Process p = Runtime....
批处理文件是Windows系统中的脚本文件,可以执行一系列命令。在 "ChangeToDos.bat" 中,它可能包含了像 `find /v /c "" < file > newfile` 这样的命令,通过查找空行并替换来将LF转换为CRLF。相反, "ChangeToUnix....
这两个参数是JNI函数中固定存在的,用于执行与Java对象相关的操作。 总的来说,Java JNI接口提供了强大的功能,允许Java开发者利用本地代码的能力,扩展了Java的应用范围。无论是Windows还是Unix/Linux环境,通过...
下面将详细介绍如何使用shell脚本(适用于Unix/Linux系统)和bat脚本(适用于Windows系统)来运行Java程序。 **shell脚本运行Java程序** 在Unix/Linux环境中,我们可以创建一个.sh文件作为shell脚本来执行Java程序...
Java执行CMD命令及MongoDB脚本是开发过程中常见的任务,特别是在集成系统或者自动化运维场景下。下面将详细讲解这两个主题。 一、Java执行CMD命令 在Java中,我们可以使用Runtime类或ProcessBuilder类来执行操作...
在IT行业中,Java项目的部署是开发到生产流程中的关键步骤,尤其当涉及到Windows和UNIX操作系统时,两者之间存在显著差异。下面将详细讲解这两个平台上的Java项目部署过程,以及环境变量配置的重要性。 首先,让...
java中ping命令ping工具类(循环ping) java ping ip ping命令 ping工具类 支持linux和windows等所有平台 Ping是Windows下的一个命令 在Unix和Linux下也有这个命令。 ping也属于一个通信协议,是TCP/IP协议的一部分 ...
《Nexus 3.69 Java 17 在 Unix 系统中的应用详解》 Nexus,由Sonatype公司开发,是一款强大的软件仓库管理器,它支持Maven、Ivy、Gradle等构建工具,是Java开发者的重要工具之一。本文将深入探讨Nexus 3.69.0-02在...
这个窗口可以是图形用户界面(如Linux上的gnome-terminal或Solaris上的dtterm)的一部分,也可以是通过网络登录到UNIX或Linux系统的应用程序,如telnet、SSH客户端或Windows PC上的PuTTY等。 #### 使用的Shell:...
以上就是使用Java执行本地CMD命令以及通过SSH连接远程Linux服务器执行shell命令的方法。这两个功能的结合,使开发者能够轻松地在不同的操作系统间进行跨平台的系统操作,极大地提高了开发和运维的效率。
在脚本中,可能会用到诸如`java -jar`这样的命令来执行Java可执行jar文件,并且可能有逻辑来检查Java版本或者处理错误情况。 在Windows系统中,虽然默认的命令解释器是cmd.exe,但该模板提供了与Linux脚本兼容的...
Java操作DOS命令主要指的是通过Java程序调用操作系统(如Windows、Linux等)的命令行接口,执行系统级别的操作。这种技术在很多场景下都非常实用,例如自动化测试、系统管理或者进行一些系统级别的数据处理。下面...
Java调用DOS命令是指在Java程序中执行操作系统级别的命令,比如Windows下的CMD命令或Linux下的Shell命令。这种功能在很多场景下都很有用,比如自动化脚本、文件操作、系统管理等。Java提供了Runtime类和...
在Java编程中,有时我们需要与操作系统...这样的示例对于理解和掌握Java执行系统命令的方法非常有帮助,也是实际开发中不可或缺的一项技能。通过实践这个例子,你将能够更好地理解和控制Java程序与操作系统之间的交互。
Java Service Wrapper是一款开源工具,用于将任何Java应用程序封装成一个Windows服务或者类Unix守护进程。通过该工具,用户可以方便地控制Java应用程序的启动、停止、暂停和恢复等操作,同时它还提供了一系列管理...
2. 使用JNI(Java Native Interface):编写C++代码,调用Windows API函数如`GetAdaptersInfo`,然后在Java中通过JNI调用这个函数。 ### Unix/Linux系统下获取MAC地址 在Unix/Linux系统中,可以使用`ifconfig`命令...
WebLogic服务器是Oracle公司的一款企业级Java应用服务器,主要用于部署和管理Java...总的来说,WebLogic性能优化和Unix命令操作的结合使用,能够有效地提升服务器的运行效率,减少性能问题的发生,保证业务的正常运行。
在Java编程中,有时我们需要与操作系统进行交互,执行一些外部程序并获取其运行结果。这通常通过使用Java的`Runtime`类或者`ProcessBuilder`类来实现。本文将详细讲解如何使用Java调用外部程序以及如何捕获并处理...
- **PATH**:在PATH环境变量中添加`%JAVA_HOME%\bin`(Windows)或`$JAVA_HOME/bin`(Unix/Linux)。这样,系统可以在任何目录下执行Java命令,如`java`, `javac`等。 3. **验证Java环境配置**: 配置完成后,...