Java Runtime.getRuntime().exec调用python程序的问题总结
1、python程序中,打开外部文件时,找不到文件的问题
在Java中使用Runtime.getRuntime().exec()调用程序时,如果java程序和python程序不在一个文件夹下,而且python中还会打开外部文件,这时会出现找不到文件的异常
解决:
使用 Runtime.getRuntime().exec(cmd,null,new File(path));方法
cmd为输入的指令(包括命令行参数也可以) , path为python文件的路径
这样就可以使python程序找到外部文件
2、调用python程序时,python控制台输出信息过多,导致程序卡死
解决:
开两个独立的线程来处理python程序的正常输出和错误输出
例程:
public static void exePython(String cmd,String path){
System.out.println("正在执行python程序");
Process proc = null;
try {
proc = Runtime.getRuntime().exec(cmd,null,new File(path));// 执行py文件
Thread thread1 = new Thread(new StreamReaderThread(proc.getInputStream(),"normal.txt"));
Thread thread2 = new Thread(new StreamReaderThread(proc.getErrorStream(),"error.txt"));
th

最低0.47元/天 解锁文章
994

被折叠的 条评论
为什么被折叠?



