Следующий код имеет полномочия ввода-вывода на моем локальном ПК и работает правильно. Однако, когда я пытался это сделать на моем сервере windows2012, возникли некоторые проблемы. Он не может правильно запускать код python, используя exec, мой python не может дать окончательный результат. Я думаю, что он не имеет полномочий на ввод-вывод, но почему?java exec запускает программу python, в то время как python не имеет полномочий на ввод-вывод
Java код:
package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class test {
private static void generateFile() throws IOException{
BufferedWriter bw = new BufferedWriter(new FileWriter("src/test/input.txt", false));
String eventString = "This is a example";
bw.write(eventString);
bw.close();
}
private static void getFile() throws IOException{
BufferedReader br = new BufferedReader(new FileReader("src/test/output.txt"));
String jsonResults = br.readLine();
br.close();
}
public static void main(String[] args) throws IOException {
generateFile();
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("python test.py", null, new File("src/test/"));
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
try {
pr.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
pr.destroy();
}
getFile();
}
}
питон код:
f = open('input.txt', 'r')
line = f.readline()
with open('output.txt', 'w') as fw:
fw.write(line)
print("Done!")
ОШИБКА Infomation:
Exception in thread "main" java.io.FileNotFoundException: src\test\output.txt (The system cannot find the specified file.)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.io.FileReader.<init>(FileReader.java:58)
at test.test.getFile(test.java:21)
at test.test.main(test.java:49)
Во-первых, thx для вашего любезного совета. Я прочитаю его, соответственно. Затем я пробовал этот код как на eclipse, так и запускал скрипт python с помощью cmd на моем компьютере. –
Что еще, я также пробовал этот скрипт с cmd на сервере, и он работал. –
Затем вы хотите добавить всю информацию об ошибке, такую как трассировки стека, к вашему вопросу. – GhostCat