我有一个Python脚本,它是我项目中的资源。脚本是一个XML文件,脚本需要该文件才能正常运行。我在两个文件中作为InputStream读取,然后为两者创建临时文件:
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文件,但此路径与临时文件的路径不同。
答案 0 :(得分:1)
基本上,你问自己有问题,因为你要求它为绝对路径,但后面加上“。”,它通常是相对路径修饰符。首先尝试$(function(){
$(".ddSample").children().each(function(i,v){
$(".ddSample").children().each(function(j,w){
if(i!=j){
if($(v).val()==$(w).val()){
$(v).parent().next().addClass("cl")
}
}
});
});
});
。此外,根据您的操作系统和/或配置,.exec(script.getAbsolutePath())
文件可能会或可能不会被识别为可执行文件(例如,在Unix系统上,只有具有可执行标志的文件才会被识别为可执行文件)。您可能实际上想要找到Python可执行文件的位置并将脚本作为参数传递。