Ubantu20中利用Docker部署SpringBoot项目,Java调用python脚本的方法。

这篇博客介绍了如何在Java程序中通过Runtime类执行Python脚本,分别给出了Windows和Linux环境下的示例代码。同时,展示了Dockerfile的配置,用于在Docker容器内安装Python环境并运行Java应用。Docker-compose.yml文件配置了服务启动参数和端口映射,确保Python文件能被正确调用。
摘要由CSDN通过智能技术生成

Java调用命令行执行python文件

Windows:

 String[] arguments = new String[] {"python3","D:/你的python文件地址.py",exp};
 Process process = Runtime.getRuntime().exec(arguments)

Linux:

Process process = Runtime.getRuntime().exec(new String[] { "/bin/bash", "-c", new StringBuffer("python3 /usr/你的python文件地址.py '" + exp + "'").toString()});

1、其中exp为调用python文件时传入的参数。
2、python和python3命令由具体安装python版本决定。
3、linux中,命令为/bin/bash -c,且携带的参数需要用引号包裹。

Dockerfile

FROM adoptopenjdk/openjdk8-openj9:jdk8u282-b08_openj9-0.24.0-alpine-slim
LABEL description="you label name"

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN set -xe && apk --no-cache add ttf-dejavu fontconfig

RUN apk add -U tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk add --no-cache bash bash-doc bash-completion \
    && apk add --no-cache python3 python3-dev py-pip\
    && apk del tzdata \
    && rm -rf /var/cache/apk/
    

RUN mkdir -p /webapp

WORKDIR /webapp

ADD ./webapp-0.0.1-SNAPSHOT.jar ./webapp.jar

ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "webapp.jar"]

其中apk add --no-cache python3 python3-dev py-pip 为在Docker容器中安装python环境。

docker-compose.yml

version: '3'
services:
    web:
        build:
            context: ./
            dockerfile: ./Dockerfile
        container_name: web
        privileged: true
        restart: always
        command:
            - --server.port=8080
        ports:
            - 8080:8080
        volumes:
            - /usr/:/usr/

volumes指定docker容器内部和外部目录挂载关系,我们python文件放在uabntu系统目录下的位置要映射到jar包运行所在的docker容器中。
这样程序在docker中运行才能找到ubantu系统中对应文件,然后执行命令,也就是执行python脚本。

如有问题欢迎评论,创作不易,辛苦点个赞呗~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值