Java中调用python代码

因为在做一个ssh的项目,需要用python进行数据分析并取回结果,所以想在java中调用一下python,方法是找到了,但是当网站运行的时候,不可避免的是调用运行的太慢了,基本无法满足用户交互的需求,所以一般不建议在java中调用python。
另外,由于在java代码的编译环境,一般是idea中无法显示python的编译对错,所以建议先把python代码在命令行模式(cmd)里面跑一下,能正确输出结果了再在java中调用。
如果python使用的是pycharm开发环境的话,使用的python库可能会有差别,建议在import中导入site-packages,这样就能使用当前的库了。

import sys
sys.path.append('C:\\Users\\Administrator\\PycharmProjects\\biye\\Lib\\site-packages')

java中代码:

 User user = (User) ActionContext.getContext().getSession().get("loginUser");
        String uid=String.valueOf(user.getUId());
        String[] arguments = new String[] { "python", "C:\\Users\\Administrator\\PycharmProjects\\biye\\test9.py", uid};
        try {
            //执行命令调用程序
            Process process = Runtime.getRuntime().exec(arguments);
            //取得命令结果的输出流,用一个读输出流类去读,用缓冲器读行
            BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line = null;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
            //调用Process.waitFor()来等待命令执行结束,获取执行结果
            int re = process.waitFor();
            System.out.println(re);
            //抛出异常
        } catch (Exception e) {
            e.printStackTrace();
        }

python中代码:

if __name__ == '__main__':
    id=sys.argv[1]
    #传递过来一般是字符串,想要int要进行格式转换
    id=int(id)
    #利用print就能把数据传回去了,到java在进行处理
    print(id)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值