服务器用Java执行cmd运行python文件失败--解决方法

目录

前提描述

可能发生的错误

原因分析

解决方法


前提描述

本文只解决在本地执行程序成功,部署到服务器上后,服务器上Tomcat执行cmd运行python不成功问题。(服务器系统为windows Server 2012 R2)

利用java调用服务器上的程序,代码如下:

public void getPythonRes(Data data, JSONObject json) throws Exception{
		// TODO Auto-generated method stub
		Process proc;
		List jsonList = new ArrayList();
		try {
			String str="python  C:/test.py";
			proc = Runtime.getRuntime().exec(str);
			//用输入输出流来截取结果
			BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));

			String line = null;
			String message=new String();
			int flag=0;
			while ((line = in.readLine()) != null) {
				flag=1;
				System.out.println(line);
				message+=line;
				message+="\n";
				jsonList.add(line);
			}

			//返回json
			if(flag==1){
				json.put("content","有");
			}else {
				json.put("content","无");
			}
			json.put("aaData",jsonList);
			//json设置完毕

			//收尾
			in.close();
			proc.waitFor();
		} catch (IOException e) {
			e.printStackTrace();
			json.put("wrong",e);
		} catch (InterruptedException e) {
			e.printStackTrace();
			json.put("wrong",e);
		}
	}

可能发生的错误

错误一:

java.io.IOException: Cannot run program “python”: CreateProcess error=2, 系统找不到指定的文件。

【将”python“改为”cmd  /c  python“后,虽然不报错,但是仍然不能运行python文件】

【将”python“改为”

C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python310\\python.exe

“(绝对路径),会出现以下错误二】

错误二

CreateProcess error= 5,拒绝访问

原因分析

  与在本地运行权限不同,在服务器中运行的tomcat的用户权限不够

解决方法

服务器中打开Tomcat程序,点击”Log On“标签

勾选”Local System accoun“,应用并重新启动tomcat,即可成功运行python程序

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值