Bonjour,

Je me suis aidé du lien "Les meilleurs API Java" pour trouver une librairie qui permettais de communiquer avec les ports USB sur Ubuntu. Je suis donc passé sur ce site : http://javax-usb.org/.

J'ai télécharger ces 3 dossiers
  • javax-usb
  • javax-usb-ri
  • javax-usb-ri-linux


J'ai utilisé la commande "ant" à la racine de chaque dossier pour faire le build (d'ailleurs je n'ai pas compris ce que ça faisait).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
help:
     [echo] Buildfile for javax.usb Linux Implementation
     [echo] 
     [echo] Targets:
     [echo] 
     [echo]   all                == clean compile jars jdoc
     [echo]   clean              Clean everything
     [echo]   compile            Compile all classes
     [echo]   help               Show this help
     [echo]   jars               Create JAR files
     [echo]   jdoc               Create JavaDOC
     [echo] 
 
BUILD SUCCESSFUL
Total time: 0 seconds
J'ai ajouté dans chaque sous-dossier /lib les fichiers .jar qu'il fallait :
  • javax-usb --> jsr80-1.0.1.jar
  • javax-usb-ri --> jsr80_ri-1.0.1.jar
  • javax-usb-ri-linux --> jsr80_linux-1.0.1.jar


Ainsi que le fichier .properties et .so comme demandé dans le "README"
  • javax-usb-ri-linux --> javax.usb.properties & libJavaxUsb.so.1.0.1


Dans Eclipse je rajoute les CLASSPATH des 3 .jar ainsi que le dossier qui contient les 2 fichiers supplémentaire. Mais malgré toutes ces étapes je n'arrive pas faire fonctionner un des codes d'exemple.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import javax.usb.*;
import java.util.List;
 
public class GetUSB
{
        public static void main(String argv[])
        {
          try
          {
              // Access the system USB services, and access to the root 
              // hub. Then traverse through the root hub.
              UsbServices services = UsbHostManager.getUsbServices();
              UsbHub rootHub = services.getRootUsbHub();
              traverse(rootHub);
          } catch (Exception e) {
        	  System.out.println("Erreur :   " + e);
          }
        }
 
        public static void traverse(UsbDevice device)
        {
        	System.out.println("entrer");
          if (device.isUsbHub())
          {   
             // This is a USB Hub, traverse through the hub.
             List attachedDevices = 
                 ((UsbHub) device).getAttachedUsbDevices();
             for (int i=0; i<attachedDevices.size(); i++)
             {
               traverse((UsbDevice) attachedDevices.get(i));
             }
          }
          else
          {    
             // This is a USB function, not a hub.
             // Do something.
          }
        }
}
Il passe dans l'exception et me met : "javax.usb.UsbException: Error while loading shared library libJavaxUsb.so : no JavaxUsb in java.library.path".

J'arrive pas à comprenre où dans Eclipse je dois ajouter mon fichier .so et savoir s'il me manque quelque chose pour la librairie Javax-usb.

Je pensais avoir suivi toutes les étapes ...

J'espère que quelqu'un pourrait m'aider.

Merci

Palo