从Java运行Python命令行实用程序

时间:2010-09-29 17:26:06

标签: java python scripting

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

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

将基于命令行的Python应用程序绑定到基于Java的GUI应用程序中的按钮的最佳方法是什么?

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

感谢。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

你考虑过jython吗?您可以: 1)用它来运行python脚本(允许它调用Java类) 2)将python编译成类文件,使它们可以通过普通的Java代码使用,而不会在运行时出现jython 我只在第一种模式中使用过它,但是我在第二种模式中看到了大量的文档。

答案 2 :(得分:0)

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