我有一个Python脚本,它是我项目中的一个资源。与脚本一起提供的是一个XML文件,脚本需要该文件才能正常运行。我将这两个文件作为输入流读入,然后为这两个文件创建临时文件:
InputStream is = (this.getClass().getClassLoader().getResourceAsStream("InterWebApp.py"));
File script = File.createTempFile("script", ".py");
Files.copy(is, script.toPath(), StandardCopyOption.REPLACE_EXISTING);
InputStream is1 = (this.getClass().getClassLoader().getResourceAsStream("setup.xml"));
File xml = File.createTempFile("config", ".xml");
Files.copy(is1, xml.toPath(), StandardCopyOption.REPLACE_EXISTING);
但是,我不确定如何将脚本作为一个进程启动:
Process p = Runtime.getRuntime().exec("." + script.getAbsolutePath());
p.waitFor();
上面的代码抛出一个IOException。如何运行script.py
并确保它可以访问config.xml
?现在,Python脚本只是使用绝对路径解析XML文件,但是对于temp文件,该路径将不同。你知道吗
基本上,你是在自找麻烦,因为你问它的绝对路径,但它的前缀是“.”,这通常是一个相对路径修饰符。先试试
.exec(script.getAbsolutePath())
。此外,根据您的操作系统和/或配置,.py
文件可能会或可能不会被识别为可执行文件(例如,在Unix系统上,只有带有可执行标志的文件才会被识别为可执行文件)。实际上,您可能希望找到Python可执行文件的位置,并将脚本作为参数传递。你知道吗相关问题 更多 >
编程相关推荐