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

网站编程软件有哪些如何成为百度广告代理商

网站编程软件有哪些,如何成为百度广告代理商,湖北建设厅官网,广州教育平台登录入口目录 一.添加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/356335.html

相关文章:

  • 有哪些效果图做的好的网站app推广公司
  • 广州网站建设哪里好教育培训平台
  • app store下载正版赣州seo公司
  • 如何不备案做购物网站真人seo点击平台
  • 郑州做网站元辰外贸推广平台怎么做
  • 做餐饮网站价格网站性能优化的方法有哪些
  • 深圳石岩做网站的公司销售平台软件有哪些
  • 简述上课网站建设所用的技术架构网站收录怎么弄
  • 单位建设网站申请互站网
  • 企业网站asp百度入驻绍兴
  • 郑州企业网站排名优化方法百度成都总部
  • 国外开网站怎样做平帐永久免费域名申请
  • 重庆奉节网站建设公司哪家好软文推广页面
  • 移动webApp旅游网站开发代码长春网络推广公司哪个好
  • 重庆网站首页制作企业培训内容
  • 微信公众号链接网站怎么做百度广告推广电话
  • 网站建设售后服务费包括哪些百度云服务器官网
  • 网站后台是怎么做的天津疫情最新消息
  • 建设通网站上线企业培训课程表
  • 上海网络推广联盟安卓手机优化神器
  • 设计公司名字logo北京网络排名优化
  • 最好的网站建设免费的网络推广的渠道和方式有哪些
  • php动态网站开发案例百度推广账户优化
  • 台州网站设计公司网站网络广告推广平台
  • 专业网站建设分类标准万网官网域名查询
  • 怎样在外贸网站上做土特产永久免费自动建站
  • 南昌建设局seo专业培训班
  • 网站设计编程网络营销郑州优化推广公司
  • 品牌型网站建设理论知乎关键词搜索
  • 商城网站建设我想创建一个网络平台