gary-rowe / hid4java

A cross-platform Java Native Access (JNA) wrapper for the libusb/hidapi library. Works out of the box on Windows/Mac/Linux.
MIT License
229 stars 71 forks source link

Native part loading and missing library #12

Closed andyrozman closed 9 years ago

andyrozman commented 9 years ago

You need to add class for loading native parts from jar... Project nrjavaserial uses something similar and it work great... Library for linux x64 is missing at least one version of it, you need to create linux-amd64 directory and copy from linux-x86-64 (leave that one here).

gary-rowe commented 9 years ago

Thanks for the update. If you're able to offer up a pull request containing these changes it'll help speed things up (I'm maxed out on other work at the moment).

andyrozman commented 9 years ago

I am sorry... my git knowledge is almost non-existant... I can send you link to correct file.. here it is... https://github.com/NeuronRobotics/nrjavaserial/blob/master/nrjavaserial/src/main/java/gnu/io/NativeResource.java

You will probably need to modify it a little...

gary-rowe commented 9 years ago

No worries, thanks for the link.

gary-rowe commented 9 years ago

I'm not sure of the purpose of the native library loading since JNA already provides this with Native. Can you provide more detail?

In the meantime I've added the Linux support for AMD64.

andyrozman commented 9 years ago

It's simply for loading native library from jar file... so that you don't need to worry if user has correct file installed. When app is started and library loaded, correct native part will be loaded from jar and you can run with it... In most cases where you have native libraries included they are deployed as external files (.dll, .so etc), with this class you can load native libraries from jar file and not from java binary folder

gary-rowe commented 9 years ago

Is that still within scope of hid4java? If I understand you correctly it should be the case that JNA will load the correct hidapi library from the JAR through Native as seen in HidApiLibrary.

This mechanism would also be available for any other libraries a user may wish to load since JNA would be available on the downstream application's classpath and thus any other binaries they supplied should be accessible.

Can you give me a use case where this is necessary?

gary-rowe commented 9 years ago

In order to progress the 0.3.0 release I'll close this issue and if it's still required then a new issue covering it specifically can be raised.