java类中执行脚本或命令(比如Linux下的脚本命令等)

本文介绍如何使用Java中的ProcessBuilder来执行本地Python脚本,包括设置命令参数、指定工作目录及读取输出等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以使用java中的ProcessBuilder执行本地命令或脚本等工作:
以下是一个简单的使用java调用本地python脚本的例子。从某工程代码中整理出来的,未封装,仅供参考。

JAVA 代码:
[java]  view plain  copy
  1. List<String> commands=new ArrayList();    
  2. commands.add("python");    
  3. commands.add(pkg);    
  4. commands.add("--ad=test");    
  5. //...其它参数添加    
  6. processBuilder.command(commands);    
  7. processBuilder.directory(path);//切换工作目录    
  8. processBuilder.redirectErrorStream(true);    
  9. Process process = processBuilder.start();    
  10. StringBuilder result = new StringBuilder();    
  11. final BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));    
  12. try {    
  13.        String line;    
  14.        while ((line = reader.readLine()) != null) {    
  15.            result.append(line);    
  16.            LOGGER.info(processBuilder.command().toString() + " --->: " + line);    
  17.        }    
  18. catch (IOException e) {    
  19.        LOGGER.warn("failed to read output from process", e);    
  20. finally {    
  21.        IOUtils.closeQuietly(reader);    
  22. }    
  23. process.waitFor();    
  24. int exit = process.exitValue();    
  25. if (exit != 0) {    
  26.     throw new IOException("failed to execute:" + processBuilder.command() + " with result:" + result);    
  27. else {    
  28.     return exit;    
  29. }    



附:

在JavaSE5之前使用Runtime的exec方法执行本地命令.在JavaSE5之后,可以使用ProcessBuilder执行本地命令.

一篇不错的介绍ProcessBuilder的文章:

http://www.cnblogs.com/taven/archive/2011/12/17/2291460.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值