调用脚本

2018-11-19  本文已影响6人  freshchen

1背景

java虽然很强大,但是在处理一些特定的工作的时候,一些脚本语言还有有着得天独厚的优势,例如在linux服务器上进行一些列的部署操作,就需要调用shell脚本,亦或者我们需要进行一些科学计算,多方研究表明python有相应的第三方库可以完成需求,并且性能不差,此时我们便有必要调用python脚本。

2举例

我们可以使用java自带的Runtime.getRuntime().exec()方法进行调用,先来看一个调用python脚本的例子吧。

public class InvokePyDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("please input a number: ");
        String num = scanner.next();
        Process process = null;
        /**
         * @参数1:“python”是要调用的脚本类型 
         * @参数2: “<dir>/<name>.py”是脚本具体的路径,根据需要使用相对路径或绝对路径
         * @参数3:这是给脚本传递的第一个参数,参数数量不限
         *        python可使用sys.argv[1]接受传入的第一个参数。以此类推
         */
        String[] args1 = new String[]{"python", "<dir>/<name>.py", num};
        try {
            process = Runtime.getRuntime().exec(args1);
            BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
            process.waitFor();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读