tutorials.de Buch-Aktion 02/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
380
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Jellysheep
    Jellysheep Jellysheep ist offline Mitglied Platin
    Registriert seit
    Jan 2009
    Ort
    Arbeitsspeicher
    Beiträge
    689
    Hi!
    Ich versuch mich grade an JNI und hab das Beispiel von "Java ist auch eine Insel" (http://www.boscheri.ch/computer/java...nsel24_001.htm) ausprobieren wollen.
    Jetzt hab ich die Datei StrLen.java (bzw. StrLen.class) mit dem Code
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    public class StrLen 
    { 
      static { 
        System.loadLibrary( "strlen" ); 
      } 
      public static native int strlen( String s ); 
    }
    und die generierte Datei StrLen.h
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    /* DO NOT EDIT THIS FILE - it is machine generated */
    #include <jni.h>
    /* Header for class StrLen */
     
    #ifndef _Included_StrLen
    #define _Included_StrLen
    #ifdef __cplusplus
    extern "C" {
    #endif
    /*
     * Class:     StrLen
     * Method:    strlen
     * Signature: (Ljava/lang/String;)I
     */
    JNIEXPORT jint JNICALL Java_StrLen_strlen
      (JNIEnv *, jclass, jstring);
     
    #ifdef __cplusplus
    }
    #endif
    #endif
    und noch die StrLen.c
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    #include <jni.h>
    #include "StrLen.h"
    #include <stdio.h>
    JNIEXPORT jint JNICALL Java_com_javatutor_jni_StrLen_strlen( JNIEnv *env, jclass clazz, jstring s )
    {
      printf( "Hallo Java-Freunde!\n" );
      return 0;
    }

    Wie (mit welchem Compiler) kann ich jetzt das Ganze zu einer .dll kompilieren lassen?
     

  2. #2
    engelmarkus engelmarkus ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Beiträge
    473
    Wenn ich mich nicht irre, steht hier alles wichtige:
    24.2.5 Übersetzen der C-Programme und Erzeugen der dynamischen Bibliothek
    Du kannst für den C-Teil z. B. die GCC oder Visual C++ hernehmen.
    Wenn da was unklar ist, dann stell doch deine Frage bitte etwas konkreter .
     

  3. #3
    Avatar von Jellysheep
    Jellysheep Jellysheep ist offline Mitglied Platin
    Registriert seit
    Jan 2009
    Ort
    Arbeitsspeicher
    Beiträge
    689
    Ich habs mit Visual C++ probiert und die .dll erzeugt, aber wenn ich dann die StrLenDemo starte, kommt nur
    Exception in thread "main" java.lang.UnsatisfiedLinkError: StrLen.strlen(Ljava/l
    ang/StringI

    Woher kommt das?
     

  4. #4
    Avatar von Jellysheep
    Jellysheep Jellysheep ist offline Mitglied Platin
    Registriert seit
    Jan 2009
    Ort
    Arbeitsspeicher
    Beiträge
    689
    Oh... jetzt hab ichs noch ein paar mal versucht, und plötzlich gings...
    Na dann,
    Ciao
     

Ähnliche Themen

  1. Compilieren zur Laufzeit
    Von Drizztd im Forum Java
    Antworten: 1
    Letzter Beitrag: 13.10.09, 22:25
  2. Antworten: 0
    Letzter Beitrag: 12.02.08, 11:05
  3. PHP Compilieren
    Von aKraus im Forum PHP
    Antworten: 1
    Letzter Beitrag: 24.11.06, 10:39
  4. compilieren
    Von Markus@java im Forum Java
    Antworten: 2
    Letzter Beitrag: 24.03.04, 19:42
  5. Von der Eingabeaufforderung Compilieren
    Von hunne im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 15.07.03, 12:46

Stichworte