Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > jni problem - destroy jvm and rebuild it

Reply
Thread Tools

jni problem - destroy jvm and rebuild it

 
 
Bert Boehne
Guest
Posts: n/a
 
      10-05-2006
hi!
i'm busy with jni. i want to start a jvm from my c++ code and call a
java method. that's working so far. but i have the problem that it has
to be possible to destroy the jvm and create afterwards again. i can't
just create the jvm in the main program and let it run until the main
program ends. that's because i'm writing a plug in to an existing program...
i downloaded the source from sun where i found the file jni.cpp. there
are the functions JNI_CreateJavaVM, jni_DestroyJavaVM and so on. also
there is a global variable:

volatile jint num_vm_created = 0; // number of VMs created so far

this variable will be checked at a call of JNI_CreateJavaVM. would it be
possible to set this variable to zero after calling jni_DestroyVM
(jni_DestroyJavaVM doesn't do that)i could create a jvm again.

now, here is my question: does someone know how to reach that variable
to set it to 0 again? or does someone have another idea to do the job?

greats,

bert
 
Reply With Quote
 
 
 
 
Chris Uppal
Guest
Posts: n/a
 
      10-05-2006
Bert Boehne wrote:

> i'm busy with jni. i want to start a jvm from my c++ code and call a
> java method. that's working so far. but i have the problem that it has
> to be possible to destroy the jvm and create afterwards again.


Then, I'm afraid, you are out of luck. It can't be done. (And yes, I agree
that sucks.)


> now, here is my question: does someone know how to reach that variable
> to set it to 0 again? or does someone have another idea to do the job?


First you should find /why/ Sun have that variable, and work out how to fix
whatever technical problem it is that the variable is protecting against.

-- chris


 
Reply With Quote
 
 
 
 
Manfred Rosenboom
Guest
Posts: n/a
 
      10-05-2006
Hi Bert,

At least up to JDK 1.4.2 this isn't possible!
You have in all JDK versions the function jni_DestroyVM, but you can't
create a new instance of the JVM in the same process after calling this
function (

If my memory serves me well, this should be possible with the
Java 5 JVM, but I haven't give it a try and, to be honest,
I doubt that it is really working in Java 5 until I have seen
it working on my machine

Best,
Manfred
 
Reply With Quote
 
Bert Boehne
Guest
Posts: n/a
 
      10-05-2006
hi Manfred!

i'm using jdk 1.5.0_07. so i think it's still not fixed.
i think there will be a very big party when this becomes possible!

greats,

bert
 
Reply With Quote
 
Chris Uppal
Guest
Posts: n/a
 
      10-05-2006
Manfred Rosenboom wrote:

> If my memory serves me well, this should be possible with the
> Java 5 JVM, but I haven't give it a try and, to be honest,
> I doubt that it is really working in Java 5 until I have seen
> it working on my machine


Just tried it with 1.5, and it still fails.

If this is something that they are thinking of fixing, then that is excellent
news -- but like you, I'll believe it only when I see it (if then).

-- chris


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
WebSphere JVM Access Violation Problem running Java program that calls methods in a Windows C++ DLL via a JNI wrapper....... adgarcia13 Java 2 06-28-2006 11:19 AM
When to destroy, when not to destroy Ook C++ 2 10-11-2005 02:11 AM
MS JVM and Sun JVM problem Young-Jin Lee Java 3 01-21-2004 04:25 AM
Different behavior for newStringUTF() for Sun JVM and IBM Jvm Lasse Java 1 01-05-2004 07:49 PM
Re: Handling both MS JVM and Sun JVM Kevin Hooke Java 2 09-02-2003 05:31 AM



Advertisments