从JAR文件中执行python脚本

时间:2019-01-28 21:54:54

标签: java python

我正在尝试编写一个执行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();
}

0 个答案:

没有答案