java - 在Java中执行python编译脚本(.pyc)

标签 java python pyc

我有一个 python 编译的脚本(script.pyc,我没有 .py 文件),它在我的 Windows 命令提示符下运行良好,我想从我的 Java 应用程序中执行它。 我尝试使用 runtime() 方法:

        Runtime runtime = Runtime.getRuntime();
    runtime.exec(new String[] {"C:\\toto\\tools\\script.pyc" ,"arg","arg2" });

但是我得到一个错误:

Exception in thread "main" java.io.IOException: Cannot run program "C:\Nuance\VoCon Hybrid\SDK_v4_3\tools\clctodict.pyc": CreateProcess error=193, %1 n?est pas une application Win32 valid

该脚本在我的终端中运行良好(“arg”是一个 txt 文件,“arg2”是输出名称,脚本可以正常工作)。

我还尝试使用 getDesktop() 启动我的脚本:

        File fie = new File("C:\\toto\\tools\\script.pyc" ,"arg","arg2");
    Desktop.getDesktop().open(fie); 

没有问题,但我无法添加参数,所以我只能看到终端窗口在几秒钟内打开,然后立即消失。 我也尝试过使用 JPython,但也没有成功(也许我们不能在 .pyc 上使用方法“execfile”????)

最佳答案

你可以做类似的事情

Process p = Runtime.getRuntime().exec(new String[]{"python.exe" ... other args)

然后可以调用p.waitFor()等待进程结束,调用p.exitValue()测试程序是否成功退出。

您还可以通过 p.getOutputStream() 获取输出流以检索 python 脚本打印的文本

请参阅类文档以获取更多信息:http://docs.oracle.com/javase/6/docs/api/java/lang/Process.html

关于java - 在Java中执行python编译脚本(.pyc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11744253/

相关文章:

python - 如何避免使用 Python 2.7 在 OS X 10.8 上创建 .pyc 文件?

java - 带有gridfs大小限制异常的Spring多部分文件上传

java - 将 java Class<> 转换为 kotlin 的 KClass<>

python - 如何使用 Python 成功地将从 MySQL 表中选择的行列插入到目标 MSSQL 表中?

python - 使用 f2py 将文本字符串从 fortran 子例程返回到 python

python - 如何使用 __pycache__ 文件夹运行 Python 项目?

python - 在 Python 3.4 中不使用 Python 源文件运行

java - 输入输出 : Writing and reading to the same text file from a C++ program and from another Java program simultaneously?

java - 在 IE 中验证后,Seam Action 解析为空

python - 如何在pandas groupby对象中使用IF NOT IN?