当前位置: 首页 > 知识库问答 >
问题:

从 java 调用 python 文件会引发错误

富建章
2023-03-14

我试图从java调用python文件。但它会抛出以下错误。

java.io.IOException: Cannot run program "python": CreateProcess error=2, The system cannot find the file specified

我尝试过的代码是:

    Process p = Runtime.getRuntime().exec("python C:\\Project\\Script\\Test.py");
    BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
    System.out.println(in.readLine());

可能是什么问题?

共有1个答案

尉迟招
2023-03-14

Runtime.exec 期望没有路径信息的文件位于用户目录中,而不是在您指定用作工作目录的目录中。请尝试使用此代码一次。

Runtime rt = Runtime.getRuntime();
Process prs;
File Dir_temp = new File("C:\\Project\\Script\\");
prs = rt.exec(new File(Dir_temp, "Test.py").getAbsolutePath(), null, Dir_temp);
prs.waitFor();
prs.destroy();
 类似资料:
  • 我使用将PDF合并在一起,但遇到了一个问题。下面的代码抛出一个错误。我做错了什么?当我用注释掉一行时,它会正确地打印出文件路径。 文件“C:\test\pdftest.py”,第9行,合并中。在init self中添加(PdfFileReader(open(os.path.join(path,pdf),'rb'))文件“C:\python\lib\site packages\pypdf2-1.26

  • 问题内容: 我正在尝试渲染文件。该文件存在于我的项目中,但是当我尝试渲染它时,我一直在获取文件。Flask为什么找不到我的模板? 问题答案: 你必须在正确的位置创建模板文件。在你的模块旁边的子目录中。 该错误表明目录中没有文件。确保在与python模块相同的目录中创建了该目录,并且确实将文件放在该子目录中。如果你的应用是软件包,则应在软件包内创建模板文件夹。 另外,如果你将模板文件夹命名为而不是其

  • 问题内容: 我不明白如何使用类。当我尝试使用该类时,以下代码给我一个错误。 错误: 怎么了? 问题答案: 您可以通过声明变量并像调用一个函数一样实例化该类: 但是,这不适用于您提供给我们的代码。当您在给定对象(x)上调用类方法时,它在调用函数时始终将指向该对象的指针作为第一个参数传递。因此,如果您现在运行代码,则会看到以下错误消息: 要解决此问题,您需要修改平均值方法的定义以采用四个参数。第一个参

  • 如果从Fragment调用,我的DialogFragment会抛出ClassCastException,而如果从Activity调用,则会正常工作。我已经看了很少的其他问题与类似的问题,基本上是与进口有关的,但我没有能够解决在我的实现。下面是我对DialogFragment的实现。 下面是我使用上面的DialogFragment的片段: 这是错误日志: 我想知道有没有人能给出一个关于这个问题的提示

  • 问题内容: 从python调用Java的最佳方法是什么?(对我来说,jython和RPC不是一个选择)。 我听说过JCC:http : //pypi.python.org/pypi/JCC/1.9 一个用于从C / Python调用Java的C 代码生成器,但这需要编译所有可能的调用。我希望有另一个解决方案。 我听说过JPype:http ://jpype.sourceforge.net/ 教程:

  • 我需要从Java中调用一些Python代码。 我知道Jython存在,或者Java有自己的Python解释器。 问题是,所说的Python代码使用一些本机(C)编译代码,甚至在GPU上运行一些东西。 所以我可以把它分为两个问题: < Li > Jython或Java的Python解释器支持这个吗?也就是说,Python代码(当从Java调用时)将与所有的C和GPU部分一起运行,因此运行速度将与它独