Java调用Python程序并向Python传值

本文介绍了一种从Java程序中调用Python脚本并传递参数的方法。通过Runtime.getRuntime().exec()方法执行Python脚本,并使用标准输入流读取Python的输出。此方法适用于需要在Java和Python间进行数据交换的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近用到Java向Python传值,找了好多的方法都是直接调用的程序,向python传值的少之又少 要不用了就报错说我缺少什么东西  要不就是没有权限什么的 很苦恼  经过翻阅资料  找到了很多的资料 最后还是解决了


	public static  void runbat(int jobId) throws IOException, InterruptedException {
		
		
            //需传入的参数
            String  a =String.valueOf(jobId);
            
            System.out.println("start;;;" + a);
            //设置命令行传入参数
            String property1 = System.getProperty("user.dir");
    		String pythonpath = property1 + "\\config\\winddaydata.py";	
            String[] args = new String[] { "python", pythonpath, a};
            Process pr = Runtime.getRuntime().exec(args);

            BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
              //  line = decodeUnicode(line);
                System.out.println(line);  //python打印流
               
            }
            in.close();
            pr.waitFor();
            System.out.println("end");  
	}

这是在java的代码只需要将python的文件名 还有参数  还有python的地址写入进去即可

下面是python的代码

print ("winddaydata", sys.argv[0])     
    for i in range(1, len(sys.argv)):   //遍历传进的参数
        print ("par", i, sys.argv[i])
        jobId=sys.argv[i]    //传入的参数

最后jobid就是我要传进的参数,这边就可以在后面直接用了  

希望可以帮到大家。。。。。也算是一点经验

转载于:https://my.oschina.net/u/3060369/blog/1137813

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值