2011-06-30 31 views
1

我想从Java执行一个Python脚本(包括Scipy和Numpy),该脚本应该与eclipse的tomcat项目捆绑在一起。从Java调用Python是微不足道的:在Tomcat项目中从Java执行Python脚本

Runtime.getRuntime().exec("python ..."); 

我该如何实现捆绑脚本以在相应的路径上调用它?这甚至有可能吗?

回答

1

你提到了tomcat,所以我猜你的项目是在jar文件中。该文件可能不作为文件提供给系统,但仅捆绑在您的jar文件中,所以python解释器无法访问它。您可以将内容作为InputStream获取。你可以在这里找到一个例子:

How to get path of executed jar file

之后,你可以写一个临时文件并使用该文件在您的exec -call。

+0

其实我想分配给当从Eclipse和了“战争”文件的执行出来服务器。我如何将它捆绑在Eclipse中? – Sney

1

我最近做了一些类似的事情,我可以从日食中运行它。

我用jythonplyjy

我一直都在罐子(jython.jar和plyjy.jar)在Eclipse项目的lib文件夹并复制所需的蟒蛇文件到项目的src文件夹中。

然后用下面的代码

PySystemObjectFactory factory = new PySystemObjectFactory(InterfaceTye, moduleName,ClassName); 

与工厂对象的帮助下,我们可以创建指定模块的对象,并调用该特定模块的方法创建的Python对象实例。

我能只在eciplse来实现它,但我不知道如何捆绑同为构建

+2

如果您不需要NUMPY或SCIPY,这是jython和plyjy的一个很好的解决方案。这是我想与Python接口的主要原因。 jython不支持这两个包。 – Sney