1

下面是从 Java 调用 Python 的给定代码

public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new test1( ).setVisible(true);
        }
    });
    try {
        PythonInterpreter.initialize(System.getProperties(), System.getProperties(), new String[0]);
        PythonInterpreter interp = new PythonInterpreter();
        interp.set("firstName", args[0]);
        interp.set("lastName", args[1]);
        interp.execfile("‪C:\\Users\\priyank\\Desktop\\pythontest.py");
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}

我收到以下异常:

java.lang.ArrayIndexOutOfBoundsException: 0" error.. 

为什么我会收到此错误?

4

3 回答 3

0

管道可能是更好的解决方案。看看这个线程:

java:如何通过管道(stdin/stdout)从进程中读取和写入

于 2013-05-29T14:45:05.653 回答
0

将值更改为

interp.set("firstName", args[1]);
interp.set("lastName", args[2]);

它会起作用,因为第一个值是 python 脚本文件名,但我们没有添加,请检查。

于 2014-01-02T10:02:29.837 回答
0

当您启动应用程序时,您似乎没有传递任何参数。args 数组是空的(大小 = 0),但是您尝试访问不存在的第一个元素(索引 0)。

于 2013-05-29T14:40:01.630 回答