在Tomcat项目中从Java执行Python脚本
我想在Java中执行一个Python脚本(这个脚本用到了Scipy和Numpy),并且这个脚本需要和Eclipse中的Tomcat项目打包在一起。从Java调用Python其实很简单:
Runtime.getRuntime().exec("python ...");
那么我该怎么把这个脚本打包起来,以便在对应的路径下调用呢?这真的可行吗?
2 个回答
1
我最近做了类似的事情,成功地在Eclipse里运行了它。
我把这两个jar文件(jython.jar和plyjy.jar)放在Eclipse项目的lib文件夹里,然后把需要的Python文件复制到项目的src文件夹里。
接着,我用下面的代码创建了一个Python对象实例:
PySystemObjectFactory factory = new PySystemObjectFactory(InterfaceTye, moduleName,ClassName);
通过工厂对象,我们可以创建指定模块的对象,并调用该模块的相关方法。
我只是在Eclipse里成功实现了这个,但我不太确定如何把它打包用于构建。
1
你提到使用了tomcat,所以我猜你的项目是打包成一个jar文件的。这个文件可能在系统中并不是以文件的形式存在,而是被打包在你的jar里,这样的话,Python解释器就无法直接访问它。你可以把内容作为输入流获取。这里有个例子可以参考:
之后,你可以把它写入一个临时文件,然后在你的exec
调用中使用这个文件。