2015-11-28 4 views
0

Я пытаюсь запустить код не ниже:NetBeans java.lang.UnsatisfiedLinkError: нет rxtxSerial в java.library.path выброшен при загрузке gnu.io.RXTXCommDriver

package serialiotest; 

    import gnu.io.*; 
    import java.io.*; 
    import java.util.*; 

    public class SerialIOTest 
    { 
    public static void main(String[] args) 
     { 
     System.out.println("Starting"); 
     java.util.Enumeration<CommPortIdentifier> portEnum 
       = CommPortIdentifier.getPortIdentifiers(); 

     while (portEnum.hasMoreElements()) 
      { 
      CommPortIdentifier portIdentifier 
        = portEnum.nextElement(); 

      System.out.println(portIdentifier.getName() + " - " 
       + getPortTypeName(portIdentifier.getPortType())); 
      } 
     } 

    static String getPortTypeName (int portType) 
     { 
     switch(portType) 
      { 
      case CommPortIdentifier.PORT_I2C: 
       return "I2C"; 
      case CommPortIdentifier.PORT_PARALLEL: 
       return "pParallel"; 
      case CommPortIdentifier.PORT_RAW: 
       return "RAW"; 
      case CommPortIdentifier.PORT_RS485: 
       return "RS485"; 
      case CommPortIdentifier.PORT_SERIAL: 
       return "Serial"; 
      default: 
       return "unknown type"; 
      } 
     } 
    } 

Сообщение об ошибке генерируемый:

 run: 
     Starting 
     java.lang.UnsatisfiedLinkError: 
      no rxtxSerial in ava.library.path  
      thrown while loading gnu.io.RXTXCommDriver 
     Exception in thread "main" java.lang.UnsatisfiedLinkError: 
      no rxtxSerial in java.library.path 
      at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864) 
      at java.lang.Runtime.loadLibrary0(Runtime.java:870) 
      at java.lang.System.loadLibrary(System.java:1122) 
      at gnu.io.CommPortIdentifier.<clinit> 
       (CommPortIdentifier.java:123) 
      at serialiotest.SerialIOTest.main(SerialIOTest.java:16) 
      Java Result: 1 
      BUILD SUCCESSFUL (total time: 1 second) 

выход сборки:

  ant -f /home/crazyprof/NetBeansProjects/serialIOTest 
       -Dnb.internal.action.name=rebuild clean jar 
      init: 
    deps-clean: 
    Updating property file: /home/crazyprof/NetBeansProjects/serialIOTest 
     /build/built-clean.properties 
    Deleting directory /home/crazyprof/NetBeansProjects/serialIOTest 
     /build 
    clean: 
    init: 
    deps-jar: 
    Created dir: /home/crazyprof/NetBeansProjects/serialIOTest/build 
    Updating property file: /home/crazyprof/NetBeansProjects/serialIOTest 
     /build/built-jar.properties 
    Created dir: /home/crazyprof/NetBeansProjects/serialIOTest/build 
     /classes 
    Created dir: /home/crazyprof/NetBeansProjects/serialIOTest/build 
     /empty 
    Created dir: /home/crazyprof/NetBeansProjects/serialIOTest/build 
     /generated-sources/ap-source-output 
    Compiling 1 source file to /home/crazyprof/NetBeansProjects 
     /serialIOTest/build/classes 
    Note: /home/crazyprof/NetBeansProjects/serialIOTest/src/serialiotest 
     /SerialIOTest.java uses unchecked or unsafe operations. 
    Note: Recompile with -Xlint:unchecked for details. 
    compile: 
    Created dir: /home/crazyprof/NetBeansProjects/serialIOTest/dist 
    Copying 1 file to /home/crazyprof/NetBeansProjects/serialIOTest/build 
    Copy libraries to /home/crazyprof/NetBeansProjects/serialIOTest 
      /dist/lib. 
    Building jar: /home/crazyprof/NetBeansProjects/serialIOTest 
     /dist/serialIOTest.jar 
    To run this application from the command line without Ant, try: 
    java -jar "/home/crazyprof/NetBeansProjects/serialIOTest 
     /dist/serialIOTest.jar" 
    jar: 
    BUILD SUCCESSFUL (total time: 23 seconds) 

Я новичок в Ubuntu 14.04 так ответы должны будут быть справедливыми подробно.

ответ

0

Ошибка вполне очевидна. Родственные библиотеки rxtx не находятся в вашем java.library.path. Есть много способов, чтобы добавить их к вашему java.library.path:

  • Вы можете добавить их, помещая правильные * .so файлов в папке, а затем добавить -Djava.library.path=folder к вашей команде Java.
  • Вы можете просто поместить файлы * .so в папку JAVA_HOME/lib/(amd64/i386). Хотя я не рекомендую этот, потому что это грязный

Если вы уже сделали это, вы можете проверить, если ваши библиотеки имеют некоторую зависимость отсутствующий, выполнив команду ldd на вашем * .so.

+0

Г-н Мартинес: Я благодарю вас. Я попытаюсь посмотреть, что произойдет. – CrazyProf

Смежные вопросы