incompatible JNA native library....

mtimmons7 years ago

I'm trying to install v3.14 on fresh ubuntu 17.04 using traccer.run. I've installed a couple versions of the server a few times over the past many months. I've never seen this JNA problem...and I'm trying to figure out how/where to set "jna.nosys=true".

I'm not a Java system expert, and I don't know how I would set this property in the run script.

Here's my traccar.run output...

sudo ./traccar.run 
Creating directory out
Verifying archive integrity...  100%   All good.
Uncompressing traccar  100%  
/usr/bin/java
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
++++++++++ YAJSW SET ENV ++++++++++
pwd: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
wrapper home : /opt/traccar
configuration: /opt/traccar/conf/wrapper.conf
java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
---------- YAJSW SET ENV ----------
++++++++++ YAJSW SET ENV ++++++++++
java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
wrapper home : /opt/traccar
configuration: /opt/traccar/conf/wrapper.conf
java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
---------- YAJSW SET ENV ----------
INFO: lib not found: /opt/traccar/lib/extended/glazedlists/glazedlists-1.8.0_java15.jar
INFO: lib not found: /opt/traccar/lib/extended/glazedlists/commons-beanutils-1.8.2.jar
INFO: lib not found: /opt/traccar/lib/extended/glazedlists/commons-beanutils-1.8.2.jar
INFO: lib not found: /opt/traccar/lib/extended/glazedlists/glazedlists-1.8.0_java15.jar
YAJSW: yajsw-stable-12.09
OS   : Linux/4.2.0-42-generic/amd64
JVM  : Oracle Corporation/1.7.0_101//usr/lib/jvm/java-7-openjdk-amd64/jre/64
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.rzo.yajsw.boot.WrapperExeBooter.main(WrapperExeBooter.java:49)
Caused by: java.lang.Error: 

There is an incompatible JNA native library installed on this system
Expected: 5.1.0
Found:    4.0.1
/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib.
To resolve this issue you may do one of the following:
 - remove or uninstall the offending library
 - set the system property jna.nosys=true
 - set jna.boot.library.path to include the path to the version of the 
   jnidispatch library included with the JNA jar file you are using

    at com.sun.jna.Native.<clinit>(Native.java:194)
    at com.sun.jna.Pointer.<clinit>(Pointer.java:54)
    at com.sun.jna.PointerType.<init>(PointerType.java:36)
    at com.sun.jna.ptr.ByReference.<init>(ByReference.java:41)
    at com.sun.jna.ptr.IntByReference.<init>(IntByReference.java:33)
    at com.sun.jna.ptr.IntByReference.<init>(IntByReference.java:29)
    at org.rzo.yajsw.os.posix.PosixProcess.<init>(PosixProcess.java:66)
    at org.rzo.yajsw.os.posix.OperatingSystemPosix.setWorkingDir(OperatingSystemPosix.java:27)
    at org.rzo.yajsw.WrapperExe.main(WrapperExe.java:115)
    ... 5 more
Anton Tananaev7 years ago

You should follow the suggestions.

mtimmons7 years ago

I installed 3.11 no problem after I posted this, so it does looks like something that changed since 3.11 and I need to resolve to move up to the 3.14

I was trying to figure out where to specify "jna.nosys=true", but I'll try this hack to wrapper.conf when I get back to it...

wrapper.java.command=java -Djna.nosys=true

Thanks for your management of all of this...on a separate note I'll have a protocol to contribute soon (I would have gladly paid you to do it if I had a decent spec but I played with it to learn, and also learned more about the device.)

Anton Tananaev7 years ago

Feel free to send a pull request with a new protocol.