[Java&C++] Java aanroepen vanuit C++ (GCJ!)

Pagina: 1
Acties:

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 15:28

Robtimus

me Robtimus no like you

Topicstarter
Ik ben aan het experimenteren met de koppeling tussen Java en C++, en dan niet met JNI maar met CNI en GCJ. Ik compile de Java source naar native code met GCJ, en link die dan met gecompilede C++ code.

Nu ben ik al een tijdje aan het spelen ermee, en C++ aanroepen vanuit Java lukt goed (in Java als native declareren, in C++ implementeren). Alleen andersom lukt me niet, ik krijg dan segfaults (Linux).

De eenvoudigste testcode die ik heb geprobeerd:
Java:
1
2
3
4
5
6
7
public class Test
{
    public static void printHello()
    {
        System.out.println("Hello World!");
    }
}
C++:
1
2
3
4
5
6
7
8
#include <gcj/cni.h>
#include "Test.h"

int main()
{
    Test::printHello();
    return 0;
}
De Test.h is gecreeerd met gcjh vanuit de met javac gecompilede Test class file.
Dit compilet uitstekend (zolang je maar linkt tegen libgcj), alleen zelfs dit eenvoudige voorbeeld levert me een segfault op. Ik ben helaas een ware noob op het gebied van GDB en consorten, dus daar kom ik niet ver mee.
Grafisch debuggen kan niet omdat die machine geen XFree heeft geinstalleerd.

Doe ik iets fout?

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hier (cpp) staat een compleet voorbeeldje wat in goed werkt. Ik denk dat het probleem zit in de initialisatie methoden die je moet aanroepen. De andere benodigde files staan in dezelfde dir.

[ Voor 24% gewijzigd door mbravenboer op 26-04-2004 14:07 ]

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Heb je hier iets aan?

mbravenboer: beide links access denied.

[ Voor 22% gewijzigd door Verwijderd op 26-04-2004 14:13 ]


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
mietje:mbravenboer: beide links access denied.
Dat moet bijna wel aan je browser liggen (certificaat geaccepteerd?), maar hier is een alternatieve url.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 15:28

Robtimus

me Robtimus no like you

Topicstarter
ik dank beide heren hartelijk _/-\o_

Bij mij deden trouwens alle links het; voor die van mbravenboer moest ik alleen eerst even een certificate accepteren, misschien lag het daar aan.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

mbravenboer schreef op 26 april 2004 @ 14:29:
Dat moet bijna wel aan je browser liggen (certificaat geaccepteerd?), maar hier is een alternatieve url.
Ik krijg een melding "svn.cs.uu.nl:12443 is not a registered protocol" (met mozilla 1.6), normaal heb ik geen problemen met certificaten...

edit:
Ik ben nu thuis, de fout lijkt te zijn veroorzaakt door transparent proxying op het werk (weird trouwens).

[ Voor 15% gewijzigd door Verwijderd op 26-04-2004 17:09 ]

Pagina: 1