Spring Boot调用Python脚本的方法
本测试在Windows开发机进行。1、准备工作在D盘创建一个python脚本,脚本路径为D:\python\hello.py,脚本内容为print("Hello World!!")在代码中定义python脚本private static final String PATH = "D:\\python\\hello.py";2、Spring Boot调用Python脚本的方法方法一、代码如下@Tes
·
本测试在Windows开发机进行。
1、准备工作
在D盘创建一个python脚本,脚本路径为D:\python\hello.py,脚本内容为
print("Hello World!!")
在代码中定义python脚本
private static final String PATH = "D:\\python\\hello.py";
2、Spring Boot调用Python脚本的方法
方法一、代码如下
@Test
public void testMethod1() throws IOException, InterruptedException
{
final ProcessBuilder processBuilder = new ProcessBuilder("python", PATH);
processBuilder.redirectErrorStream(true);
final Process process = processBuilder.start();
final BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String s = null;
while ((s = in.readLine()) != null)
{
System.out.println(s);
}
final int exitCode = process.waitFor();
System.out.println(exitCode == 0);
}
方法二、在pom中引入依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-exec</artifactId>
<version>1.3</version>
</dependency>
代码如下
@Test
public void testMethod2()
{
final String line = "python " + PATH;
final CommandLine cmdLine = CommandLine.parse(line);
try (final ByteArrayOutputStream baos = new ByteArrayOutputStream())
{
final PumpStreamHandler streamHandler = new PumpStreamHandler(baos);
final DefaultExecutor executor = new DefaultExecutor();
executor.setStreamHandler(streamHandler);
final int exitCode = executor.execute(cmdLine);
log.info("调用Python脚本的执行结果: {}.", exitCode == 0 ? "成功" : "失败");
log.info(baos.toString().trim());
}
catch (final IOException e)
{
log.error("调用Python脚本出错", e);
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)