在JavaEclipse中运行.py文件

在JavaEclipse中运行.py文件,java,python-3.7,processbuilder,Java,Python 3.7,Processbuilder,“>”因此我正在开发一个从Spotify的API获取信息的程序。我有一个python脚本,它为java程序提供我需要的数据。不幸的是,我无法让eclipse自己运行.py脚本。我使用的是ProcessBuilder,由于某种原因没有出现错误,但是程序没有执行python脚本。我是在一个项目中集成多种语言的新手,因此非常感谢您的帮助!我做了几个小时的研究,试图弄明白这一点。我知道这里有关于同一主题的类似帖子,但没有一个答案对我有效。谢谢“它正在运行脚本,但您没有得到输出,因为您做了两件错误的事情。

“>”因此我正在开发一个从Spotify的API获取信息的程序。我有一个python脚本,它为java程序提供我需要的数据。不幸的是,我无法让eclipse自己运行.py脚本。我使用的是ProcessBuilder,由于某种原因没有出现错误,但是程序没有执行python脚本。我是在一个项目中集成多种语言的新手,因此非常感谢您的帮助!我做了几个小时的研究,试图弄明白这一点。我知道这里有关于同一主题的类似帖子,但没有一个答案对我有效。谢谢“它正在运行脚本,但您没有得到输出,因为您做了两件错误的事情。首先,请参阅javadoc以了解:

返回连接到进程正常输入的输出流。流的输出通过管道传输到由该进程对象表示的进程的标准输入

这不是您想要的。要从流程中获取输出,请使用:

返回连接到进程正常输出的输入流。该流从由该进程对象表示的进程的标准输出获取数据。[如果合并,则加上stderr]

其次,
System.out.println(stream)
(对于输入流)不打印可以在流上接收的数据,它只打印流对象(作为内部类名、atsign、hashcode)。以显示来自python进程的数据(即脚本)您必须从流中读取数据,然后输出读取的数据。到处都有这样的例子;我无法想象您怎么能花上几个小时却找不到至少一百个。请尝试以下示例:





非常感谢您的回复!不幸的是,正如我在帖子中所说的,python文件没有被执行。python脚本在执行后将数据写入文件,并且文件没有被覆盖/更新。我想您误解了我的问题。我没有问如何读取python文件的输出,而是问我是否做了一个m我开始调用ProcessBuilder,如果是,我如何开始调试它。正如我所说的,这是我第一次使用ProcessBuilder。谢谢!如果没有异常,那么python正在执行。如果脚本在当前目录中,python正在运行它;阅读
p.getErrorStream()
,查看任何错误消息从python或脚本。或者如果您是从shell或“终端”(不是像Eclipse或Intellij这样的IDE)运行,请使用
pb.inheritIO()
pb.redirectError(Redirect.INHERIT)
获取错误消息在终端上。您确定您正在正确的当前目录中运行吗?您确定脚本没有输出到正常情况下的终端吗?
            try {
                ProcessBuilder pb = new ProcessBuilder("C:\\Users\\--------\\PycharmProjects\\--------\\venv\\Scripts\\Python.exe", "---------.py");
                Process p = pb.start();
                System.out.println(p.getOutputStream());
            }
            catch(Exception e){
                System.out.println("Exception: " + e);
            }