首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何集成Java和Python?

如何集成Java和Python?
EN

Stack Overflow用户
提问于 2016-11-15 08:54:53
回答 2查看 473关注 0票数 0

由于一些加密原因,我正在尝试将java和python结合起来,其中加密代码实际上是提供者的java文件,但我正在编写python代码。所以我想要的是在java上执行加密代码

代码语言:javascript
复制
x = os.system("java file.java")

,然后返回java执行中的值,就像函数中的那样。

代码语言:javascript
复制
print x

如下所示:

java_hello_world.py

代码语言:javascript
复制
import os

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

HelloWorld.java

代码语言:javascript
复制
public class HelloWorld {
    public static void main(String[] args) {
        String x;
        x = "Hello World";
        System.out.println(x);
        return "HELLO WORLD";
    }

}

顺便说一下,上面的java文件返回一个错误:

代码语言:javascript
复制
HelloWorld.java:7: error: incompatible types: unexpected return value
return x;

PS

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

只要我在python中有我想要的结果,任何建议的方法都会很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-15 09:04:34

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

您唯一希望得到的是一个数值返回代码值。

你真正要找的是:

  • 在这个过程中运行的程序写到stdout ..。或者到某个文件
  • 触发该过程的python代码可以读取该内容。

有关您的python如何读取子进程正在编写的标准输出的说明,请参见这里

而且要记录在案:没有弯路。如果您打算对您的java代码做任何“严肃”的事情,那么您必须通过学习足够的来实现这一点。不理解一个方法说空不能有一个返回某事语句,这是一个很好的例子。

对于python方面的事情也是如此。是的,os.system()是调用某些进程的简单、直接的方法。但是如果您对这个主题做了一点研究,您可能已经看到python中有子流程模块.以及它的文档

票数 1
EN

Stack Overflow用户

发布于 2016-11-15 08:59:13

主方法不能返回一个值,因为它声明为void

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40605559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档