【发布时间】:2011-06-30 06:12:13
【问题描述】:
我想从 Java 执行一个 Python 脚本(包括 Scipy 和 Numpy),它应该通过 eclipse 与 tomcat 项目捆绑在一起。从 Java 调用 Python 很简单:
Runtime.getRuntime().exec("python ...");
如何实现绑定脚本在对应路径调用?这甚至可能吗?
【问题讨论】:
标签: java python eclipse tomcat
我想从 Java 执行一个 Python 脚本(包括 Scipy 和 Numpy),它应该通过 eclipse 与 tomcat 项目捆绑在一起。从 Java 调用 Python 很简单:
Runtime.getRuntime().exec("python ...");
如何实现绑定脚本在对应路径调用?这甚至可能吗?
【问题讨论】:
标签: java python eclipse tomcat
你提到了 tomcat,所以我猜你的项目是在一个 jar 文件中。该文件可能无法作为文件提供给系统,而只是捆绑在您的 jar 中,因此 python 解释器无法访问它。您可以将内容作为 InputStream 获取。你可以在这里找到一个例子:
How to get path of executed jar file
之后,您可以将其写入临时文件并在您的exec-call 中使用该文件。
【讨论】:
我最近做了一些类似的事情,我可以从 eclipse 中运行它。
我将两个 jars(jython.jar 和 plyjy.jar)保存在 Eclipse 项目的 lib 文件夹中,并将所需的 python 文件复制到项目的 src 文件夹中。
然后使用以下代码创建了一个 Python 对象实例
PySystemObjectFactory factory = new PySystemObjectFactory(InterfaceTye, moduleName,ClassName);
借助工厂对象,我们可以创建指定模块的对象并调用该特定模块的方法。
我只能在 eciplse 中实现它,但我不确定如何为构建捆绑相同的内容
【讨论】: