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

Reply via email to