Andi Vajda <va...@apache.org> wrote: > > On Fri, 4 Mar 2011, Bill Janssen wrote: > > > Andi Vajda <va...@apache.org> wrote: > > > >>> Or if I need to run the same Python program multiple times? > >> > >> There is no notion of python program in this context (no > >> __main__). You import a module, instantiate a class from it and invoke > >> its methods. You can import and instantiate as many classes and > >> modules as you like, of course. > > > > JEPP has an interface to Python's "exec". This avoids the overhead of > > writing a Java class which is then subclassed in Python which is then > > instantiated and brought out to Java again so that you can call one of > > its methods. That would be a handy thing to have in PythonVM. I > > suppose I could add it, after I get PythonVM working (this loadLibrary > > thing). > > > > Alternatively, I could use JEPP, or JEPP tweaked for JCC, if there was > > some way to pass the Java VM "into" the JEPP instantiation of Python, in > > such a way that that initVM() could find it. > > If JEPP execs python, then that Python VM runs in a subprocess of the
It's not Java's Runtime.exec(), it's Python's built-in function, "exec". So the Python VM is running in the same address space as Java. > Java process. If you then call JCC's initVM() from that subprocess, I > do not know how the JNI api would behave in that situation. Will it > "find" the parent process' JVM, I don't know. I doubt that JNI has all > the magic required for transparent IPC to the parent process built-in > out of the box. Right. If I was going to do that, I'd just use java.lang.Runtime.exec(). Bill