我想访问设备,所以我使用Java
库在eclipse中开发了一个JNI
代码,该库调用c代码与设备进行通信。
为了访问设备,我们在eclipse中需要sudo
身份验证,所以我使用以下链接完成了身份验证
How do I run my application as superuser from Eclipse?
但是现在我正面临着用Java代码加载JNI库的问题
我收到错误
WARNING: Running as root!
Loading...
Did not load library
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1750)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1675)
at java.lang.Runtime.loadLibrary0(Runtime.java:840)
at java.lang.System.loadLibrary(System.java:1047)
at org.sc.ivb.jni.DeviceCommunicationController.<clinit>(DeviceCommunicationController.java:10)
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.sc.ivb.jni.DeviceCommunicationController.Ivb_InitDevice()V
at org.sc.ivb.jni.DeviceCommunicationController.Ivb_InitDevice(Native Method)
at org.sc.ivb.jni.DeviceCommunicationController.main(DeviceCommunicationController.java:27)
答案 0 :(得分:4)
请勿使用sudo
执行此任务!而是为设备提供适当的权限,以便用户可以访问它。这可以通过使用chmod
/ chown
更改设备文件的权限,或使用adduser <username> <group>
将当前用户添加到该设备组来实现。