在Tomcat项目中从Java执行Python脚本

1 投票
2 回答
2363 浏览
提问于 2025-04-16 20:34

我想在Java中执行一个Python脚本(这个脚本用到了Scipy和Numpy),并且这个脚本需要和Eclipse中的Tomcat项目打包在一起。从Java调用Python其实很简单:

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

那么我该怎么把这个脚本打包起来,以便在对应的路径下调用呢?这真的可行吗?

2 个回答

1

我最近做了类似的事情,成功地在Eclipse里运行了它。

我使用了jythonplyjy这两个工具。

我把这两个jar文件(jython.jar和plyjy.jar)放在Eclipse项目的lib文件夹里,然后把需要的Python文件复制到项目的src文件夹里。

接着,我用下面的代码创建了一个Python对象实例:

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

通过工厂对象,我们可以创建指定模块的对象,并调用该模块的相关方法。

我只是在Eclipse里成功实现了这个,但我不太确定如何把它打包用于构建。

1

你提到使用了tomcat,所以我猜你的项目是打包成一个jar文件的。这个文件可能在系统中并不是以文件的形式存在,而是被打包在你的jar里,这样的话,Python解释器就无法直接访问它。你可以把内容作为输入流获取。这里有个例子可以参考:

如何获取执行的jar文件路径

之后,你可以把它写入一个临时文件,然后在你的exec调用中使用这个文件。

撰写回答