Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Ottenere evento perifierica inptut loggato da linux

    Buon giorno a tutti,

    Ho la necessità di catturare gli eventi scaturiti da un joystick collegato al PC tramite porta USB.
    So che il kernel linux crea un particolare file nella seguente directory dove logga tutti gli eventi delle periferiche:

    /dev/input/event{id del dispositivo}

    per poter facilmente leggere gli eventi di un particolare dispositivo ho pensato di usare questa libreria

    https://github.com/progman32/evdev-java

    che tramite le JNI di java ed una classe scritta il C dovrebbe riuscire a catturare gli eventi del dispositivo indicato.

    Il problema è che quanto faccio partire l'applicativo mi viene ritornata l'eccezione dicendo che la JVM non riesce a caricare la classe nativa.

    Considerate che compilo direttamente il progetto indicato ed eseguo la classe:

    EvdevJoystickTest = evdev-java / src-test / com / dgis / input / evdev / EvdevJoystickTest.jav

    Il SO in cui faccio i test: UBUNTU 14.04

    Grazie mille in anticipo a tutti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    https://github.com/progman32/evdev-java

    che tramite le JNI di java ed una classe scritta il C dovrebbe riuscire a catturare gli eventi del dispositivo indicato.

    Il problema è che quanto faccio partire l'applicativo mi viene ritornata l'eccezione dicendo che la JVM non riesce a caricare la classe nativa.
    Non conosco quel progetto in dettaglio ma è davvero piccolo a quanto vedo. Hai compilato i sorgenti "nativi" per ottenere la libreria dinamica .so? Hai fatto in modo che la JVM sia in grado di rintracciare quel .so? (la home page lo precisa nella sezione "INSTALLATION").
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Praticamente non avevo notato che la classe era da compilare grazie mille!!
    Conosci librerie più grosse per fare il suddetto lavoro?
    Ho già provato questa e non è male sicuramente da migliorare per quello che devo fare; se non ne esistono altre ci lavoro su.

    Grazie ancora!!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    Praticamente non avevo notato che la classe era da compilare grazie mille!!
    Prego.

    Quote Originariamente inviata da cataDesign Visualizza il messaggio
    Conosci librerie più grosse per fare il suddetto lavoro?
    No mi spiace, non ne conosco. Se ti va abbastanza bene questa qui e non ha grossi lati negativi puoi certamente continuare con questa, eventualmente maneggiandola un po' (ma devi saper usare JNI).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ok perfetto grazie mille, questa potrebbe essere la scusa per imparare ad usarle

    Un ultima cosa come eseguo il file JAR che contiene la classe JNI? ottengo sempre class not found.

    (Eseguendolo tramite eclipse non ho nessun errore)

    codice:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no evdev-java in java.library.path	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
    	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    	at java.lang.System.loadLibrary(System.java:1119)
    	at com.dgis.input.evdev.EventDevice.<init>(EventDevice.java:166)
    	at com.dgis.input.evdev.EvdevTest.main(EvdevTest.java:43)

  6. #6
    Risolto usando il parametro -Djava.library.path= nel comando java

    sudo java -Djava.library.path=./ -jar t.jar /dev/input/event14

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.