JEP and JPype in a single process

Steve Menard foo at bar.com
Wed Jun 22 10:32:04 EDT 2005


Steve Menard wrote:
> skn wrote:
> 
>> Hello,
>>
>> I have written a very simple java class file, which invokes a Python 
>> script
>> using JEP.
>>
>> Code snippet:-
>> -------------------
>> Jep jep = new Jep(false);
>> jep.runScript("C:\\temp\\testscript.py");
>> jep.close();
>>
>> Now inside this Python script I want to make Java calls using JPype.
>> If I use startjvm() inside this Python script, a Runtime Error 
>> (exception)
>> is thrown.
>> Also tried attachThreadToJVM(), but doesn't work, again Runtime Error.
>>
>> Any clues as to how I could achieve my goal??
>> The interaction shown below should happen in a single process.
>>
>> JAVA ==> jep ==> PYTHON ==> jpype ==> JAVA
>>
>> Regards,
>> skn
>>
>>
> 
> You're trying to do something I hope to make possible somewhere down the 
> road ...
> 
> As of today, I do not think it is possible. JPype does not provide a way 
> to initialize the JVM-bridge system except for startJvm .. which seems 
> to be prohibited when a JVM is already running.
> 
> AttachThreadToJVM will only work once the JVM-bridge system has been 
> initialize.
> 
> I will look into providing a sister method to startJVM to attach to the 
> currently running JVM instead of starting a new one. IF it does not 
> require major changes I will release it as 0.5.1. If you'd like you can 
> submit an enhancement request on the JPype sourceforge page, so this 
> doesn't get lost.
> 
> 
> 

OK .. it now works. There are a few caveats that cannot be resolved 
until either JEP and JPype can somehow cooperate or I finish what I 
started and basically fold the JEP functionality in JPype.

I will release the new functionality in as version 0.5.1. The "gotchas" 
are going to be in a readme-jep.txt file.

-- 
Steve Menard
--------------------
Maintainer of http://jpype.sourceforge.net



More information about the Python-list mailing list