我有一個Python腳本,它是我的項目中的一個資源。與腳本一起的是腳本需要的XML文件才能正常運行。我讀這兩個文件作爲InputStream,然後創建臨時文件兩種:如何在Java中將腳本作爲文件運行?
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
並確保它可以訪問3210?現在,Python腳本只是使用絕對路徑來解析XML文件,但這個路徑對於臨時文件來說不會相同。
我對Java很生疏,對'File'類的知之甚少,但是這看起來對我來說很懷疑:''。「 + script.getAbsolutePath()'。似乎你想要''./「'或'」。\「'取決於你的環境,你想要基本的文件名,而不是絕對路徑。 –
@JuanTomas我試過'「./」+ script.getName()'但是拋出異常,因爲進程找不到文件 – SVN600
請問你能提供例外嗎? –