/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
JVM og JNI og C (2)
Fra : David Poulsen


Dato : 26-06-02 11:32

Davs igen derude

Her er koden som jeg prøver at compile under MSVC 6.0 Standard og det funger
fint nok men når jeg kører programmet så crasher det:

#include <jni.h>
#include <stdio.h>

void main(){

JavaVM *vm;
JNIEnv *env;
JavaVMInitArgs vm_args;
JavaVMOption options[1];
options[0].optionString = "-Djava.class.path=.";
vm_args.version = JNI_VERSION_1_2;
vm_args.options = options;
vm_args.nOptions = 1;
vm_args.ignoreUnrecognized = 1;
jclass cls;
jobject obj;
char *cstr;



jint res = JNI_CreateJavaVM(&vm, (void **)&env,&vm_args);
if (res < 0) {
printf("Can't create Java VM\n");

}
cls = env->FindClass("Prog"); /*The name of class in Java*/
if (cls == 0) {
printf("Can't find Prog class\n");

}

jmethodID mid = env->GetMethodID(cls, "Yup","(I)Ljava/lang/String;"); /*
Search the Method of class*/
if (mid == 0) {
printf("Can't find Yup() method\n");

}

/* Create a object to class */
jobject obj_java = env->NewObject(cls,mid);

jstring str_java = (jstring) env->CallObjectMethod(obj_java,mid,vm_args);

if (str_java !=0)
{
const char *retorno = env->GetStringUTFChars(str_java,0);
}

vm->DestroyJavaVM();

}

Og jeg ved ærlig talt ikke hvad jeg skal gøre...

Jeg kører på Win2k, og den generer windows fejl hvor der står at den ikke
kan "write"

Takker for hjælpen


--
Best regards / Med venlig hilsen

David Poulsen
Email: dpoulsen@e-box.dk
ICQ: 150873892



 
 
Dennis Thrysøe (26-06-2002)
Kommentar
Fra : Dennis Thrysøe


Dato : 26-06-02 12:16

David Poulsen wrote:
> Davs igen derude
>
> Her er koden som jeg prøver at compile under MSVC 6.0 Standard og det funger
> fint nok men når jeg kører programmet så crasher det:

[SNIPPED CODE]

Ved du i hvilken linie i dit program den går ned. Er det under selve
invokeringen? (env->CallObjectMethod()).

> Jeg kører på Win2k, og den generer windows fejl hvor der står at den ikke
> kan "write"

Det siger nok ikke så meget. JVM'en (eller måske dit program) forsøger
at skrive et sted i hukommelsen, der er uden for den aktuelle proces.

Har du initializeret alle datastrukturer du giver med til JVM'en med
noget fornuftigt? Hvis der er nogle tilfældige/default værdier rundt
omkring opstår den slags problemer typisk.

Så vidt jeg husker kan JVM'en godt finde på at går ned, hvis bare man
opfører sig lidt forkert. Hvis noget f.eks. går galt i Java programmet,
og man ikke tager højde for at der kan kastes en exception.

Jeg har vedhæftet en indpakning af JVM skrevet i Pascal.

-dennis



David Poulsen (26-06-2002)
Kommentar
Fra : David Poulsen


Dato : 26-06-02 13:13

"Dennis Thrysøe" <dt@netnord.dk> skrev i en meddelelse
news:3D19A266.5070603@netnord.dk...
> David Poulsen wrote:
> > Davs igen derude
> >
> > Her er koden som jeg prøver at compile under MSVC 6.0 Standard og det
funger
> > fint nok men når jeg kører programmet så crasher det:
>
> [SNIPPED CODE]
>
> Ved du i hvilken linie i dit program den går ned. Er det under selve
> invokeringen? (env->CallObjectMethod()).
>
> > Jeg kører på Win2k, og den generer windows fejl hvor der står at den
ikke
> > kan "write"
>
> Det siger nok ikke så meget. JVM'en (eller måske dit program) forsøger
> at skrive et sted i hukommelsen, der er uden for den aktuelle proces.
>
> Har du initializeret alle datastrukturer du giver med til JVM'en med
> noget fornuftigt? Hvis der er nogle tilfældige/default værdier rundt
> omkring opstår den slags problemer typisk.
>
> Så vidt jeg husker kan JVM'en godt finde på at går ned, hvis bare man
> opfører sig lidt forkert. Hvis noget f.eks. går galt i Java programmet,
> og man ikke tager højde for at der kan kastes en exception.
>
> Jeg har vedhæftet en indpakning af JVM skrevet i Pascal.
>
> -dennis
>
Jeg vil kigge din vedhæftede fil igennem .

Men jeg mener at jeg har gjort det lige efter en tutorial fra javaworld.com

Mange tak

--
Best regards / Med venlig hilsen

David Poulsen
Email: dpoulsen@e-box.dk
ICQ: 150873892





Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste