如何集成Java和Python?

时间:2016-11-15 08:54:53

标签: java python

我正在尝试将java和python结合起来用于某些加密原因,其中加密代码实际上是来自提供程序的java文件,但我正在编写python代码。所以我想要的是使用

在java上执行加密代码
print x

只需在函数

中返回java执行中的值
import os

x = os.system("java HelloWorld")
print x # This should print HELLO WORLD

像这样:

java_hello_world.py

public class HelloWorld {
    public static void main(String[] args) {
        String x;
        x = "Hello World";
        System.out.println(x);
        return "HELLO WORLD";
    }

}

HelloWorld.java

HelloWorld.java:7: error: incompatible types: unexpected return value
return x;

顺便提一下上面的java文件会返回错误:

android

PS

我不是Java开发人员,我没有经验

只要我在python

中得到了我想要的结果,任何建议的方法都会很棒

2 个答案:

答案 0 :(得分:1)

当您调用另一个进程时,没有返回值。

您唯一希望的是数字返回代码值。

您实际需要的是:

  • 在该进程中运行的程序写入 stdout ...或某些文件
  • 触发该过程的python代码可以读取该内容

请参阅here以获取有关python脚本如何读取子进程正在编写其stdout的说明。

记录:没有弯路。如果你打算做任何事情"认真的"使用您的Java代码,您必须学习足够的Java来实现这一点。不理解一个说 void 的方法不能有返回语句的方法就是一个很好的例子。

对于python方面也是如此。是的, os.system()是调用某个进程的简单直接的方法。但是,如果您对该主题进行了一些研究,您可能已经看到python中存在子进程模块...以及它的documentation

答案 1 :(得分:0)

您的main方法无法返回声明void的值。

进程只能返回数字退出代码。

在不同流程之间进行通信的方法是IPC