当前位置: 首页 > wzjs >正文

ppt模板下载免费版网站微商已经被国家定为传销了

ppt模板下载免费版网站,微商已经被国家定为传销了,自动跳转到wap网站,上杭县建设局网站住房保障目录 一.添加Jython依赖 二.使用步骤 1. 创建 ProcessBuilder 实例 2. 设置工作目录(可选) 3. 合并错误流(可选) 4. 启动进程 5. 处理输入输出流 6. 等待进程完成 7.完整案例 三.注意事项 ProcessBuilder是jdk提供的脚本…

目录

一.添加Jython依赖

二.使用步骤

1. 创建 ProcessBuilder 实例

2. 设置工作目录(可选)

3. 合并错误流(可选)

4. 启动进程

5. 处理输入输出流

6. 等待进程完成

 7.完整案例

三.注意事项


ProcessBuilder是jdk提供的脚本执行工具类,无论是python文件还是shell脚本还是其他的指令,都可以通过此类来执行,我们来看看它是如何调用python脚本的。

ProcessBuilder 是 Java 提供的一个用于创建操作系统进程的类,它使得启动和管理外部进程变得更加简单和灵活。以下是一个详细的教程,帮助你理解如何在 Java 中使用 ProcessBuilder

一.添加Jython依赖

<dependency><groupId>org.python</groupId><artifactId>jython-standalone</artifactId><version>2.7.2</version> <!-- 确认版本号是最新的 -->
</dependency>

二.使用步骤

1. 创建 ProcessBuilder 实例

首先,你需要创建一个 ProcessBuilder 的实例,并指定要执行的命令及其参数。命令可以是一个简单的字符串数组,其中第一个元素是命令名称,后续元素是该命令的参数。

List<String> command = Arrays.asList("python3", "path/to/your_script.py", "arg1", "arg2");
ProcessBuilder processBuilder = new ProcessBuilder(command);
2. 设置工作目录(可选)

你可以为这个进程设置一个工作目录,如果未指定,默认的工作目录将是当前Java进程的工作目录。

processBuilder.directory(new File("/path/to/working/directory"));
3. 合并错误流(可选)

默认情况下,标准输出和标准错误是分开的。如果你希望将它们合并到一起处理,可以调用 redirectErrorStream(true) 方法。

processBuilder.redirectErrorStream(true);
4. 启动进程

通过调用 start() 方法来启动进程,并获得一个 Process 对象,你可以使用这个对象与新进程进行交互。

Process process = processBuilder.start();
5. 处理输入输出流

为了从子进程中获取输出或向子进程发送输入,你需要处理 Process 对象的标准输入、输出和错误流。

// 获取子进程的输出流
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), StandardCharsets.UTF-8));
String line;
while ((line = reader.readLine()) != null) {System.out.println(line); // 或者做其他处理
}// 如果需要发送数据到子进程的标准输入
OutputStream out = process.getOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(out, StandardCharsets.UTF-8);
writer.write("Some input data\n");
writer.flush(); // 别忘了刷新输出流
6. 等待进程完成

最后,你可以等待子进程结束,并检查它的退出状态码。

try {int exitCode = process.waitFor();System.out.println("Exit Code: " + exitCode);
} catch (InterruptedException e) {e.printStackTrace();
}
 7.完整案例
	@PostMapping("/process")public String process(@RequestBody String param) throws Exception {// 获取python文件所在目录地址ProcessBuilder pb = new ProcessBuilder("python", "D:\\DevelopWork\\my-space\\java\\pep7chiao-demos\\exe-py-script\\src\\main\\resources\\script\\spider.py", param);// 解决中文乱码pb.environment().put("PYTHONIOENCODING", "utf-8");// 获取进程的输出流和错误流pb.redirectErrorStream(true);Process process = pb.start();// 读取Python脚本的输出BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));String result = "";String line;while ((line = reader.readLine()) != null) {System.out.println(line);result += line;}BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));String errorResult;while ((errorResult = errorReader.readLine()) != null) {System.out.println(errorResult);}// 等待进程结束并检查退出状态int exitCode = process.waitFor();if (exitCode != 0) {throw new RuntimeException("python脚本执行失败:" + exitCode);}return result;}

三.注意事项

  • 字符编码:确保正确处理字符编码,特别是当你处理非ASCII字符时(如中文)。

  • 异常处理:对可能发生的异常进行适当的处理,以避免程序崩溃。

  • 资源管理:记得关闭所有打开的流(如 BufferedReaderOutputStreamWriter),以防止资源泄漏。

通过这些步骤,你应该能够轻松地在你的Java应用中使用 ProcessBuilder 来执行外部命令或脚本,并与之交互。

http://www.dtcms.com/wzjs/508399.html

相关文章:

  • 电商设计师常用的网站查关键词排名软件
  • 温州网站优化定制最近一周新闻大事摘抄
  • 开设赌场罪建设网站专业郑州企业网站建设
  • 360免费建站pomhubseo搜索是什么
  • 赣州网站seo企业网站优化工具
  • 网站上线后网络营销咨询公司
  • 做网站的合作案例比较经典的营销案例
  • 医院网站建设的计划网络广告营销成功案例
  • 企业网站带商城源码搜索引擎优化趋势
  • 更换模板对网站seo的影响网站关键词优化排名公司
  • 晋城网站开发百度竞价是什么意思?
  • 龙岗开发公司网站建设seo算法
  • 加强门户网站建设与管理办法自己怎么注册网站
  • 免费做翻页页面的网站做搜索引擎优化的企业
  • 网站用社交图标做链接侵权吗如何优化标题关键词
  • 东莞网站建设公司企业seo简单优化
  • 网站制作需要多少钱官网亚马逊关键词搜索器
  • wordpress svg宁波网站制作优化服务
  • wordpress修改源代码徐州自动seo
  • 织梦网站图标路径百度搜索指数是怎么计算的
  • 用html做的美食网站app推广注册接单平台
  • 安徽软件定制开发关键词优化推广公司哪家好
  • 晋中做网站公司网站优化 福州
  • 网站建设南京东莞推广
  • 专做动漫的网站seo在线培训机构
  • 百度搜不到网站百度一直不收录网站
  • 房产网站代理怎么快速推广自己的产品
  • 在设计赚钱的网站有哪些seo快速优化软件
  • 高校网站群建设研究搭建网站的五大步骤
  • 武汉建设学校招生简章快速排名优化seo