Comment puis-je charger et utiliser la bibliothèque native de java?

J'ai une classe java, l'appel d'une méthode native et en essayant de charger la bibliothèque:

import java.io.UnsupportedEncodingException;

public class Main {

    public static native String getMyString(String s);

    /**
     * @param args
     * @throws UnsupportedEncodingException
     */
    public static void main(String[] args) throws UnsupportedEncodingException {
        //TODO Auto-generated method stub
        //System.out.println("here!");

        String s2 = getMyString("string text");
        for (Byte b : s2.getBytes("UTF-8")) {
            System.out.print(b);
            System.out.print(",");
        }

    }

    static {
        System.loadLibrary("mylib.so");
    }

}

La "mylib.alors," est dans le répertoire, où Main.class est situé.

Quand je lance java Main - je obtenir de l'exception suivante:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no mylib.so in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1856)
        at java.lang.Runtime.loadLibrary0(Runtime.java:845)
        at java.lang.System.loadLibrary(System.java:1084)
        at Main.<clinit>(Main.java:24)

Que dois-je modifier pour que cela wark?

J'ai essayé de réglage de la bibliothèque de chemin d'accès complet sans succès

Sauf si vous avez codé pour la JNI, vous n'allez probablement pas obtenir beaucoup plus loin même après vous avez réussi à charger votre .. S'il vous plaît vérifier le Soleil JNI tutoriel: java.sun.com/developer/onlineTraining/Programming/JDCBook/...

OriginalL'auteur Arsen Zahray | 2012-08-02