What is the difference between JNA and JNR
JNA uses reflection to call native methods.
JNR generates bytecode in runtime only once therefore JNR works faster then JNA. See example of code generating here
The presentation you linked gave part of the answer already - so just continue reading. E.g. on slide 26 and ff:
Why Not JNA?
- Preprocessor constants?
- Standard API sets out of the box
- C callbacks?
- Performance