/ 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
Initialisering af VM fra C++
Fra : Brian Matzon


Dato : 01-01-01 19:34

Hejsa

Jeg har lidt problemer med at få compilet et program der initialisere
JVM'en.
Jeg bruger cygwin og gcc.
Problemet er at gcc smider en masse parser errors - og jeg ved faktisk ikke
helt hvorfor den brokker sig...

Håber at der er en der kan hjælpe... :)

8<-8<-8<-8< test.cpp 8<-8<-8<-8<
#include <stdio.h>
#include <stdlib.h>
#include "E:\Java\jdk1.3\include\jni.h"

int main()
{
JavaVM *vm;
JNIEnv *env;
JavaVMInitArgs vm_args;

vm_args.version = JNI_VERSION_1_2;
vm_args.options = NULL;
vm_args.nOptions = 0;
vm_args.ignoreUnrecognized = true;

int res = JNI_CreateJavaVM(&vm, (void **)&env, &vm_args);
if (res < 0)
{
jclass cls = env->FindClass("Test");
jmethodID mid = GetStaticMethodID(cls, "main",
"([Ljava/lang/String;)V");
CallStaticVoidMethod(cls, mid, 100);

vm->DestroyJavaVM();
}
}
8<-8<-8<-8< test.cpp 8<-8<-8<-8<

8<-8<-8<-8< Test.java 8<-8<-8<-8<
public class Test
{
public Test()
{
}

public static void main(String[] args)
{
System.out.println("Hello world, from Java");
}
}
8<-8<-8<-8< Test.java 8<-8<-8<-8<

Fejl beskeder fra gcc:
In file included from E:/Java/jdk1.3/include/jni.h:30, from test.cpp:3:
E:/Java/jdk1.3/include/jni_md.h:19: syntax error before `;'
In file included from test.cpp:3:
E:/Java/jdk1.3/include/jni.h:111: syntax error before `;'
E:/Java/jdk1.3/include/jni.h:310: warning: `__stdcall__' attribute ignored
E:/Java/jdk1.3/include/jni.h:311: ANSI C++ forbids declaration `jlong' with
no type
E:/Java/jdk1.3/include/jni.h:311: `jlong' declared as function returning a
function
E:/Java/jdk1.3/include/jni.h:311: ANSI C++ forbids declaration
`CallLongMethod' with no type
.... OSV.



 
 
Thorbjørn Ravn Ander~ (02-01-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 02-01-01 10:27

Brian Matzon wrote:

> Fejl beskeder fra gcc:
> In file included from E:/Java/jdk1.3/include/jni.h:30, from test.cpp:3:
> E:/Java/jdk1.3/include/jni_md.h:19: syntax error before `;'
> In file included from test.cpp:3:
> E:/Java/jdk1.3/include/jni.h:111: syntax error before `;'
> E:/Java/jdk1.3/include/jni.h:310: warning: `__stdcall__' attribute ignored
> E:/Java/jdk1.3/include/jni.h:311: ANSI C++ forbids declaration `jlong' with
> no type
> E:/Java/jdk1.3/include/jni.h:311: `jlong' declared as function returning a
> function
> E:/Java/jdk1.3/include/jni.h:311: ANSI C++ forbids declaration
> `CallLongMethod' with no type
> ... OSV.

Hvis jeg ikke husker helt forkert (OS/2 med gcc for et par år siden), er
der nogen makroer der skal sættes korrekt op førend ovenstående virker
som det skal. Cygwin lader som om den er Unix, men er det ikke helt.

Find den første fejl og find den makro som ikke er defineret rigtigt, og
hit så det sted hvor den er defineret, og se om ikke du bliver klogere
af det


--
Thorbjørn Ravn Andersen "...sound of...Tubular Bells!"
http://bigfoot.com/~thunderbear

Brian Matzon (02-01-2001)
Kommentar
Fra : Brian Matzon


Dato : 02-01-01 22:48

Njaa... Jeg kan ikke se nogen makroer der er forkerte...

Virker egenligt lidt som et linefeed problem (Unix vs. Dos)... Men hvis jeg
åbner jni.h og gemmer den som unix format via UltraEdit hjælper det ikke...
:(

*sigh*

"Thorbjørn Ravn Andersen" <thunderbear@bigfoot.com> wrote in message
news:3A519ED9.979EB0F1@bigfoot.com...
> Brian Matzon wrote:
>
> > Fejl beskeder fra gcc:
> > In file included from E:/Java/jdk1.3/include/jni.h:30, from test.cpp:3:
> > E:/Java/jdk1.3/include/jni_md.h:19: syntax error before `;'
> > In file included from test.cpp:3:
> > E:/Java/jdk1.3/include/jni.h:111: syntax error before `;'
> > E:/Java/jdk1.3/include/jni.h:310: warning: `__stdcall__' attribute
ignored
> > E:/Java/jdk1.3/include/jni.h:311: ANSI C++ forbids declaration `jlong'
with
> > no type
> > E:/Java/jdk1.3/include/jni.h:311: `jlong' declared as function returning
a
> > function
> > E:/Java/jdk1.3/include/jni.h:311: ANSI C++ forbids declaration
> > `CallLongMethod' with no type
> > ... OSV.
>
> Hvis jeg ikke husker helt forkert (OS/2 med gcc for et par år siden), er
> der nogen makroer der skal sættes korrekt op førend ovenstående virker
> som det skal. Cygwin lader som om den er Unix, men er det ikke helt.
>
> Find den første fejl og find den makro som ikke er defineret rigtigt, og
> hit så det sted hvor den er defineret, og se om ikke du bliver klogere
> af det
>
>
> --
> Thorbjørn Ravn Andersen "...sound of...Tubular Bells!"
> http://bigfoot.com/~thunderbear



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste