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

3
我开发了一个命令行实用程序,需要从Java GUI应用程序中调用。负责Java GUI的团队希望将我的命令行应用程序绑定到GUI中的按钮;Python应用程序目前没有时间或兴趣重写为Java。
我对Java毫无经验,所以我想问一下:
如何将基于命令行的Python应用程序绑定到基于Java的GUI应用程序中的按钮是最佳方法?
我非常关注异常管理(如何告诉Java Python失败)。
谢谢。
3个回答

1

你应该能够使用Runtime.exec()从Java执行一个派生进程。这里有一些例子

确保你同时捕获stdout和stderr(并发 - 参见这个答案以获取更多细节),这样你就可以报告错误了。你可以捕获应用程序的退出代码,所以确保应用程序本身正确地报告错误。错误代码将是检测错误的更可靠方式(我会怀疑)而不是解析输出流。


1
谢谢Brian。我同意 - 最好确保Python脚本返回退出代码(整数),而不是消息。非常感谢。 - Escualo

0
你考虑过使用Jython吗?你可以: 1)使用它来运行Python脚本(允许调用Java类) 2)将Python编译成类文件,使其可被普通Java代码使用,而无需在运行时存在Jython。 我只在第一种模式下使用过它,但我看到了大量关于第二种模式的文档。

0

我同意Phlip的观点 - 你可以在Java中创建一个脚本引擎,并使用它来调用你的Python代码。只要你的Python代码不使用任何不寻常的特定于操作系统的库调用或DLL,这应该可以正常工作。这个链接:http://jythonpodcast.hostjava.net/jythonbook/chapter10.html 应该会给你更多关于你需要的确切机制的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接