我想从Java执行一个Python脚本(包括Scipy和Numpy),它应该与eclipse的tomcat项目捆绑在一起。从Java调用Python是微不足道的:
Runtime.getRuntime().exec("python ...");
如何实现捆绑脚本以在相应路径上调用它?这甚至可能吗?
答案 0 :(得分:1)
你提到tomcat,所以我猜你的项目是在一个jar文件中。该文件可能无法作为文件提供给系统,但只捆绑在jar中,因此python解释器无法访问它。您可以将内容作为InputStream获取。你可以在这里找到一个例子:
How to get path of executed jar file
之后,您可以将其写入临时文件并在exec
- 呼叫中使用该文件。
答案 1 :(得分:1)
我最近做了一些相似的事情,我能够从日食中运行它。
我将两个jar(jython.jar和plyjy.jar)保存在Eclipse项目的lib文件夹中,并将所需的python文件复制到项目的src文件夹中。
然后使用以下代码
创建了一个Python对象实例PySystemObjectFactory factory = new PySystemObjectFactory(InterfaceTye, moduleName,ClassName);
在工厂对象的帮助下,我们可以创建指定模块的对象并调用该特定模块的方法。
我只能在eciplse中实现它,但我不确定如何为构建捆绑相同