+-

我有一个 python编译脚本(script.pyc,我没有.py文件),该脚本在 Windows命令提示符下运行良好,我想从 Java应用程序中执行该脚本.
我试图使用runtime()方法:
我试图使用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中执行python编译脚本(.pyc) - 乐贴网