Ergebnis 1 bis 3 von 3

Thema: Java String in C char über JNI - Java native interface -

  1. #1
    Unregistriert
    Gast

    Standard Java String in C char über JNI - Java native interface -

    Hallo,
    ich bin neu hier im Forum und auch mit C und hoffe, dass meine Frage beantwortet wird.

    und zwar ch versuche diese C-Methode von java aus aufzurufen:

    int
    startup(
    const char *addr,
    const char *listen_port,
    const char *strap_addr,
    const char *strap_port
    );

    //************************************************** *******
    also in Java :
    static{
    System.loadLibrary("method_aufruf_testlib");
    }
    public native int j_startup(
    String addr,
    String listen_port,
    String bootstrap_addr,
    String bootstrap_port
    );
    public static void main(String[] args) {

    j_method_aufruf_test call_method = new j_method_aufruf_test();
    String j_string = "NULL";

    call_method.j_startup(j_string, j_string, j_string, j_string);


    //************************************************** *******
    in C:

    JNIEXPORT jint JNICALL Java_joss_1method_1aufruf_1test_j_1startup
    (JNIEnv *env, jobject jobj, jstring j_addr,
    jstring j_listen_port,
    jstring j_bootstrap_addr,
    jstring j_bootstrap_port)
    {

    // konvertiere Java-String in C-String
    const char *addr = (*env)->GetStringUTFChars(env, j_addr, 0);
    const char *listen_port = (*env)->GetStringUTFChars(env, j_listen_port, 0);
    const char *bootstrap_addr = (*env)->GetStringUTFChars(env, j_bootstrap_addr, 0);
    const char *bootstrap_port = (*env)->GetStringUTFChars(env, j_bootstrap_port, 0);


    printf("addr s = %s\n", addr);
    printf("addr c = %c\n", addr);
    printf("*addr c = %c\n\n", *addr);

    printf("vor startup \n\n\n");

    int ruekgabe = startup( addr, listen_port, bootstrap_addr, bootstrap_port);

    printf("nach startup \n\n\n");

    return ruekgabe;
    }
    //************************************************** *******

    Ausgabe:
    @linux-vltm:~/workspacej/malloctest/bin> java joss_method_aufruf_test



    addr s = NULL
    addr c = �
    *addr c = N

    vor oss_startup


    @linux-vltm:~/workspacej/malloctest/bin>
    //************************************************** *******
    Ich glaube die Methode in c [int ruekgabe = startup( addr, listen_port, bootstrap_addr, bootstrap_port);]
    bekommt nicht das was in java übergeben wurde [in dem Fall NULL, es war String j_string = "NULL"; ]

    was mache ich falsch?

    PS: es funktioniert einwandfrei z.B wenn ich diese Variablen in C initialisiere (also nicht durch konvertieren von Java-String):


    char *addr = NULL;
    char *listen_port = NULL;
    char *bootstrap_addr = NULL;
    char *bootstrap_port = NULL;

    Aber mein Ziel ist es , von java aus die Methode so aufrufen zu können:
    call_method. j_startup(
    String addr,
    String listen_port,
    String bootstrap_addr,
    String bootstrap_port
    );

    Ich danke im Voraus

    Gruß
    Mike
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Java String in C char über JNI - Java native interface -

    Vielleicht gehts mit einem CharArray ode ähnlichem?

  3. #3
    Unregistriert
    Gast

    Standard AW: Java String in C char über JNI - Java native interface -

    Danke The User für die schnelle Antwort,
    Es ist schon klar! es läuft so wie es ist aber so wie oben steht bekommt die Methode "NULL" als Text und nicht als wert glaube ich. also mit "0" geht.

    Gruß
    Mike

Ähnliche Themen

  1. JAva tut
    Von pindakaas im Forum Tutorials, Workshops und Anleitungen
    Antworten: 6
    Letzter Beitrag: 04.05.2006, 10:20
  2. GUTER Passwortschutz über Java
    Von ezoez im Forum Script-Archiv
    Antworten: 33
    Letzter Beitrag: 16.08.2005, 16:37
  3. java script pop-up über frames problem
    Von gastgast im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 28.07.2004, 23:46
  4. JAVA Bot
    Von gruby im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 27.07.2004, 15:37
  5. java in css
    Von sYco im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 10
    Letzter Beitrag: 28.06.2004, 13:06

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •