如何在Java中以文件的形式运行脚本?

2024-10-04 11:34:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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文件,该路径将不同。你知道吗


Tags: 文件py脚本isscriptfilesxmlthis
1条回答
网友
1楼 · 发布于 2024-10-04 11:34:47

基本上,你是在自找麻烦,因为你问它的绝对路径,但它的前缀是“.”,这通常是一个相对路径修饰符。先试试.exec(script.getAbsolutePath())。此外,根据您的操作系统和/或配置,.py文件可能会或可能不会被识别为可执行文件(例如,在Unix系统上,只有带有可执行标志的文件才会被识别为可执行文件)。实际上,您可能希望找到Python可执行文件的位置,并将脚本作为参数传递。你知道吗

相关问题 更多 >