2010-09-29 131 views
3

我开发了一个需要从Java GUI应用程序调用的命令行实用程序。负责Java GUI的团队希望将我的命令行应用程序绑定到GUI中的按钮; Python应用程序是这样的,当时我们没有时间或兴趣用Java重写它。从Java运行Python命令行实用程序

我在Java中没有任何经验,所以我问你:

什么是一个基于Java的GUI应用程序绑定一个基于命令行的Python应用程序的按钮的最佳方式?

我非常关心异常管理(如何告诉Java Python失败)。

谢谢。

回答

1

您应该能够使用Runtime.exec()从Java执行衍生进程。 Here's some examples

确保您捕获stdout和stderr(同时 - 请参阅this answer获取更多详细信息),以便您可以报告错误。您可以捕获应用程序的退出代码,因此请确保应用程序本身正确报告错误。错误代码将是检测错误(我怀疑)在解析输出流时更可靠的方式。

+0

谢谢Brian。我同意 - 最好确保Python脚本返回退出代码(整数)而不是消息。非常感谢。 – Escualo 2010-09-29 18:10:41

0

你认为jython?你可以: 1)使用它来运行python脚本(允许它调用Java类) 2)将python编译到类文件中,使它们可用于普通的Java代码,而不会在运行时出现jython 我只使用它第一种模式,但我已经看到第二批文档。

0

我同意phlip--你可以用Java创建一个脚本引擎,并用它来调用你的Python代码。假如你的python代码不使用任何异常的操作系统特定的库调用或DLL,这应该可以正常工作。此链接:http://jythonpodcast.hostjava.net/jythonbook/chapter10.html应该为您提供有关您所需的确切机制的更多信息。