Externe Bibliothek verwenden



  • Hallo,

    ich versuche gerade jcurses zum Kompilieren zu bringen, doch irgendwas mach ich wohl falsch. Ich hab jcurses heruntergeladen, im lib-Ordner befinden sich eine .jar und zwei .so Dateien. Ich packe diese drei Dateien in einen anderen lib-Ordner in meinem Projekt. Dann mache ich Refresh in Eclipse und füge das .jar zum Build Path hinzu.

    Dann versuche ich folgendes auszuführen:

    import jcurses.system.*;
    
    public class javaProject{
    	public static void main(String[] arguments){
    		Toolkit kit = new Toolkit();
    		kit.printString("hello", 0, 0, new CharColor(CharColor.BLACK, CharColor.WHITE));
    	}
    }
    

    aber ich bekomme diese Fehlermeldung:

    OpenJDK 64-Bit Server VM warning: You have loaded library ../javaProjects/javaProject/lib/libjcurses.so which might have disabled stack guard. The VM will try to fix the stack guard now.
    It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
    Exception in thread "main" java.lang.UnsatisfiedLinkError: ../javaProjects/javaProject/lib/libjcurses.so: ../javaProjects/javaProject/lib/libjcurses.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
    	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
    	at java.lang.Runtime.load0(Runtime.java:809)
    	at java.lang.System.load(System.java:1086)
    	at jcurses.system.Toolkit.<clinit>(Toolkit.java:37)
    	at javaProject.main(javaProject.java:6)
    

    Dann führe ich, wie es da steht, execstack -c *.so aus, aber das ändert gar nichts an der Fehlermeldung. Nun weiß ich nicht mehr was tun.

    Wie bringe ich das Programm zum Laufen?


Anmelden zum Antworten