java - 从 Java 运行 Python 脚本

标签 java python digits pycaffe

我正在尝试在 Java 中运行 .py 脚本,但是当我运行 java 代码时,它没有显示任何输出。我做错了什么?我尝试过:

ArrayList<String> command = new ArrayList<String>();
    //xterm will be launched, if platform is Linux.
    command.add("xterm");
    command.add("-c");
    command.add("python");
    command.add("/home/clef/Escritorio/use_archive.py");
    command.add("/home/clef/classification/STOP_WORDS.tar.gz");
    command.add("/home/clef/Escritorio/Prueba_linea/000006/6.jpg");
    command.add(" > ~/Escritorio/mike.txt");
    //command.add("--revert");    // switch to revert the patch

    ProcessBuilder pb = new ProcessBuilder(command);

    Process p = null;

    if (pb != null) {

        try {
            p = pb.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (p != null) {
            try {
                p.waitFor();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

    String line = "";
    ArrayList<String> allOut = new ArrayList<>();
    System.out.println("salida");
    try
    {
        System.out.println("SALIDA-----------:");
        while ((line = reader.readLine())!= null)
        {
            System.out.println(line);
            allOut.add(line);
        }
    } catch (IOException ex)
    {
        //allOut = "0";
        //Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        //System.out.println("erro3");        }
        System.out.println("error");
    }

该脚本来自 NVIDIA DIGITS 框架,但我无法从 Java 运行任何 python 脚本。如果我在终端中运行 .py 脚本,我会得到输出:

Unknown file: solver.prototxt
    Unknown file: train_val.prototxt
    Processed 1/1 images in 0.076470 seconds ...
    -------- Prediction for /home/clef/Escritorio/Prueba_linea/000006/6.jpg --------
     51.4607% - "0"
      7.7899% - "1"
      5.7782% - "2"
      5.6086% - "3"
      5.2513% - "4"

    Script took 0.523756 seconds.

最佳答案

试试这个:

Process p = Runtime.getRuntime().exec("python yourapp.py");

Exec 运行系统命令,如果您安装了 python,这将像在操作系统的命令终端中一样运行 python 文件。

关于java - 从 Java 运行 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36660460/

相关文章:

Ruby:如何判断一个字符是字母还是数字?

java - 1000位字符串,不使用数组求最大5位

java - 对于中等大小的文件,尽可能快地将 XML 转换为 CSV

java - “instanceof”的示例

java - 如何处理: java. lang.ArrayIndexOutOfBoundsException:1

Python SQLite 如何使用 '?' 占位符进行部分搜索?

c - 如何将数字字符串存储为任意大整数?

java - 有什么方法可以隐藏 JavaFX 上旋转器的文本字段吗?

python - 如何在 openCV python 2.7 中添加 "Tracker"

python - 多级相对导入