java执行python获取返回值

String line="";
        String reStr = "";
        try{           
            String[] ars = new String[] { "python", "C:\\comm\\loraPrt.py", msgStr, commType, commCode, uCode};
            Process pr = Runtime.getRuntime().exec(ars);           
            pr.waitFor();
            InputStreamReader ir = new InputStreamReader(pr.getInputStream());
            BufferedReader in = new BufferedReader(ir);
            while ((line = in.readLine()) != null) {
                reStr = line;
            }           
            in.close();
            pr.waitFor();
        }catch(IOException e){
            e.printStackTrace();
        }catch(InterruptedException e){
            e.printStackTrace();
        }       
        req.setAttribute("msgStr", reStr);                  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中调用Java接口,可以使用PyJNIus库来实现,该库是一个Python的JNI(Java Native Interface)实现。 以下是一个示例,假设Java中有一个接口类`TestInterface`,其中有一个方法`testMethod`,它接收一个字符串类型的参数并返回一个字符串类型的Java代码: ```java public interface TestInterface { public String testMethod(String str); } ``` Python代码: ```python from jnius import autoclass # 加载Java类 TestClass = autoclass('TestInterface') # 创建Java对象 test_obj = TestClass() # 调用Java方法 result = test_obj.testMethod("Hello from Python!") # 打印返回值 print(result) ``` 在执行Python代码时,需要将Java类的class文件加载到JVM中,可以通过设置`CLASSPATH`环境变量或使用`autoclass`函数中的`classpath`参数来实现。 另外,如果Java方法中有多个参数,可以使用`jobject`类型来传递Java对象,例如: Java代码: ```java public interface TestInterface { public int add(int a, int b); } ``` Python代码: ```python from jnius import autoclass # 加载Java类 TestClass = autoclass('TestInterface') # 创建Java对象 test_obj = TestClass() # 创建Java整数对象 a = autoclass('java.lang.Integer')(10) b = autoclass('java.lang.Integer')(20) # 调用Java方法 result = test_obj.add(a, b) # 打印返回值 print(result) ``` 注意:在使用PyJNIus库时,需要确保已经正确安装了Java环境,并且PythonJava的位数要一致。如果Python是64位的,则需要安装64位的Java环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值