linux 环境下通过Java代码调用python脚本问题

调用python代码

application.properties中的python脚本路径配置,注意:python脚本路径不要加引号,例如:

InterfaceWaterMonitorAdditionRedundancyPath="/opt/python/QuRongYu.py",这样在调用时会出现不能打卡文件的错误。

#除冗余的脚本路径   服务器上路径不要加引号
InterfaceWaterMonitorAdditionRedundancyPath=/opt/python/QuRongYu.py
String[] argus = new String[]{"/usr/local/python3/bin/python3.6", InterfaceWaterMonitorAdditionRedundancyPath, fileName + "#" + argusBuffer.toString()};
            log.info("python:" + argus[0]);
            log.info("python path:" + argus[1]);
            log.info("argus:" + argus[2]);
            try {
                long start = System.currentTimeMillis();
                Process proc2 = Runtime.getRuntime().exec(argus);

                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        BufferedReader in = null;
                        try {
                            in = new BufferedReader(new InputStreamReader(proc2.getInputStream(), "gbk"));
                            String line = "";
                            while ((line = in.readLine()) != null) {
                                log.info("line:" + line);
                            }

                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                    }
                }).start();


                //错误流
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        String err = null;
                        while (true) {
                            try {
                                BufferedReader error = new BufferedReader(new InputStreamReader(proc2.getErrorStream(), "gbk"));
                                if (((err = error.readLine()) != null)) {
                                    log.info("error:" + err);
                                }
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }

                    }
                }).start();
                int x = proc2.waitFor();//0-成功  不是0,调用Python算法失败

其中:/usr/local/python3/bin/python3.6 python解析器路径寻找方法如下:

python
import sys
sys.path

 

 找到后如何确定是否找对路径呢,

可以用解析器路径直接调用python脚本,格式如下:

解析器路径 python脚本路径

/usr/local/python3/bin/python3.6 python脚本路径

建议python里面可以打印log,能够直观看出是否调用成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值