java使用RunTime调用windows命令行

当Java需要调用windows系统进行交互时,可以使用Runtime进行操作。

例子:

1、调用window中获取关于java相关的进行信息

        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("wmic process where caption=\"javaw.exe\" get caption,commandline /value");
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line = null;
        while((line=br.readLine())!=null){
            System.out.println(new String(line.getBytes(), "GBK"));
        }
        br.close();
        System.out.println("over");

显示结果如下:

 

2、在java中查询windows中端口 :80

        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("cmd /k netstat -an | findstr :80"); // OK
        
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line = null;
        while((line=br.readLine())!=null){
            System.out.println(new String(line.getBytes(), "GBK"));
        }
        br.close();
        System.out.println("over");

结果为:

3、执行bat文件

Runtime rt = Runtime.getRuntime();
rt.exec("cmd /k start d:/Run/hello.bat");

注意:在编写的简单的bat,可以按照上述方式执行,但是:当hello需要依赖外部环境变量时不行

比如我需要启动tomcat来发布一个web

rt.exec("cmd /k start d:/Run/Tomcat/bin/startup.bat");//会报错
// 当使用exec需要执行多条命令时,使用&&进行拼接
rt.exec("cmd /k d: && cd d:/Run/Tomcat/bin && startup.bat");//OK
cmd /c dir 是执行完dir命令后关闭命令窗口。
cmd /k dir 是执行完dir命令后不关闭命令窗口。
cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。

 

转载于:https://www.cnblogs.com/TheoryDance/p/6140616.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java使用`Runtime`调用Python文件并传入参数可以通过执行命令行的方式来实现。以下是一个示例: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { try { // 构建命令行命令 String pythonScriptPath = "/path/to/script.py"; String[] cmd = new String[3]; cmd[0] = "python"; // Python解释器的路径,如果已在环境变量中,可以直接使用"python" cmd[1] = pythonScriptPath; cmd[2] = "argument1"; // 传递给Python脚本的参数 // 创建ProcessBuilder对象 ProcessBuilder pb = new ProcessBuilder(cmd); // 启动进程并等待其完成 Process process = pb.start(); int exitCode = process.waitFor(); // 读取Python脚本的输出 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } if (exitCode == 0) { System.out.println("Python脚本执行成功"); } else { System.out.println("Python脚本执行失败"); } } catch (IOException | InterruptedException e) { e.printStackTrace(); } } } ``` 上述示例中,通过构建命令行命令,在`cmd`数组中定义了要执行的Python脚本路径和传递给脚本的参数。然后通过`ProcessBuilder`启动进程,执行Python脚本。最后可以通过读取进程的输出流来获取Python脚本的输出。 请将示例中的`/path/to/script.py`替换为您实际的Python脚本路径,并根据需要修改传递给脚本的参数。 希望能帮到您!如果有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值