* Help request from newbee on JvNewTYPEArray and System.out usage
@ 2006-05-14 17:01 mirleau
0 siblings, 0 replies; only message in thread
From: mirleau @ 2006-05-14 17:01 UTC (permalink / raw)
To: gcc-help
Hi, I'm trying to call java from a c++ main(),I managed get this far:
===========================================================
[mirleau@astrid learngcj]$ gcj --version
gcj (GCC) 4.1.0 20060304 (Red Hat 4.1.0-3)
[mirleau@astrid learngcj]$ cat Class1.java
public class Class1
{
public double doIt(double anInput)
{
return anInput + 1.4;
}
}
[mirleau@astrid learngcj]$ cat Class1.cc
#include "Class1.h"
#include <stdio.h>
main()
{
Class1 myC1Object;
double myInput = 122.;
double myOutput = (double) myC1Object.doIt((jdouble) myInput);
printf("Output: %f\n", myOutput);
}
[mirleau@astrid learngcj]$ make Class1.exe
gcj -C Class1.java
gcjh Class1 --classpath=.
gcj -c -fPIC Class1.java
gcc -lgcj -fPIC Class1.o Class1.cc -o Class1.exe
rm Class1.o Class1.class Class1.h
[mirleau@astrid learngcj]$ ./Class1.exe
Output: 123.400000
===============================================================
OK, everything seems fine, however I'm having some trouble getting further:
If I try to pass array arguments I get a Floating point exception,
which seems to be unrelated to any java files:
===============================================================
[mirleau@astrid learngcj]$ cat Class2.cc
#include <gcj/array.h>
#include <stdio.h>
main()
{
jbooleanArray myInputArray = NULL;
printf("Was here1\n"); fflush(stdout);
myInputArray = JvNewBooleanArray((jint) 2);
printf("Was here2\n"); fflush(stdout);
}
[mirleau@astrid learngcj]$ gcc -lgcj -fPIC Class2.cc -o Class2.exe
[mirleau@astrid learngcj]$ ./Class2.exe
Was here1
Floating point exception
===============================================================
Problem two I get if I use System.out.println in the java class:
===============================================================
[mirleau@astrid learngcj]$ cat Class3.java
public class Class3
{
public double doIt(double anInput)
{
System.out.println("abc");
return anInput + 1.4;
}
}
[mirleau@astrid learngcj]$ cat Class3.cc
#include "Class3.h"
#include <stdio.h>
main()
{
Class3 myC3Object;
double myInput = 122.;
double myOutput = (double) myC3Object.doIt((jdouble) myInput);
printf("Output: %f\n", myOutput);
}
[mirleau@astrid learngcj]$ make Class3.exe
gcj -C Class3.java
gcjh Class3 --classpath=.
gcj -c -fPIC Class3.java
gcc -lgcj -fPIC Class3.o Class3.cc -o Class3.exe
rm Class3.class Class3.h Class3.o
[mirleau@astrid learngcj]$ ./Class3.exe
Segmentation fault
=============================================================
I also tried on an older version of gcc (3.3.3), but that doesn't help,
I must be doing something wrong here,
If anybody can help me out it would be appreciated!
Ciao, Olivier
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-05-14 17:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-14 17:01 Help request from newbee on JvNewTYPEArray and System.out usage mirleau
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).