我正在尝试编写一个执行python脚本的Java应用程序,以便将值返回给原始程序。但是,该脚本是用Python3编写的,所以我不能使用Jython。
我当前的程序在Intellij中工作正常,但是当我导出到JAR文件时,它不再起作用(我假设是因为文件路径不同)。我知道过去曾问过类似的问题,但似乎没有一个解决方案。
String currentPath = new File("").getAbsolutePath();
String path = Paths.get(currentPath, "src", "com", "engine", "pythonScript.py").toUri().toString();
String[] cmd = new String[]{"python", path, data};
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
String output;
while ((output = stdInput.readLine()) != null) {
System.out.println(output);
if (checkOutput(output)) {
return output;
}
}
BufferedReader error = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String s;
while ((s=error.readLine()) != null) {
System.out.println(s);
}
} catch (IOException e) {
e.printStackTrace();
}