Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:运行Processing 3.2.1的Raspberry Pi出现不满意的链接错误_Java_Processing_Openkinect_Archlinux Arm_Libfreenect2 - Fatal编程技术网

Java:运行Processing 3.2.1的Raspberry Pi出现不满意的链接错误

Java:运行Processing 3.2.1的Raspberry Pi出现不满意的链接错误,java,processing,openkinect,archlinux-arm,libfreenect2,Java,Processing,Openkinect,Archlinux Arm,Libfreenect2,每当我从OpenKinect Kinect v1示例点云运行示例代码时,就会出现此错误 Unsatisfied link error: Unable to load library 'freenect': Native library (linux-arm/libfreenect.so) not found in resource path. A library relies on native code that's not available. OpenKinect库是专为ARM Li

每当我从OpenKinect Kinect v1示例点云运行示例代码时,就会出现此错误

 Unsatisfied link error: Unable to load library 'freenect': Native library (linux-arm/libfreenect.so) not found in resource path. 
A library relies on native code that's not available.
OpenKinect库是专为ARM Linux体系结构设计的,可以找到。基本的问题是,我认为它无法正确地找到libfreenect.so库,即使库中有libfreenect.so库。我想它不在这条路上

请参阅下面正在运行的示例代码(我认为是导入库freenect.*导致了问题):

//丹尼尔·希夫曼
//Kinect点云示例
// https://github.com/shiffman/OpenKinect-for-Processing
// http://shiffman.net/p5/kinect/
导入org.openkinect.freenect.*;
导入org.openkinect.processing.*;
//Kinect库对象
Kinect-Kinect;
//旋转角度
浮点数a=0;
//我们将使用一个查找表,这样我们就不必一遍又一遍地重复计算
float[]depthLookUp=新的float[2048];
无效设置(){
//P3D渲染
尺寸(800600,P3D);
kinect=新的kinect(本);
kinect.initDepth();
//所有可能深度值的查找表(0-2047)
for(int i=0;i

编辑 下面是我得到的图片:


我不知道如何处理
。但下面的内容应该有助于解决问题

要获取当前的
java.library.path
设置,可以使用

System.out.println(System.getProperty("java.library.path"));
在命令行上指定它的步骤

java -Djava.library.path=/your/additional/directory
库必须位于目录中

/your/additional/directory/linux-arm/libfreenect.so
如何在
处理中指定此属性我无法回答。但是你现在应该可以搜索它了

编辑:如果输出为
/usr/java/packages/lib/arm:/lib:/usr/lib
,则可以将库存储为

/usr/lib/linux-arm/libfreenect.so

因此,这是一个比我想象的更简单的修复(不是总是吗?),所以我不得不去我的
/home/pi/sketchbook/libraries/
删除任何现有的openKinect库。然后下载专门为Raspberry Pi armv6hf板制作的openKinect库zip文件,并将其解压缩到
/home/Pi/sketchbook/libraries/
中。然后重新启动处理,打开示例,然后找到库。感谢George Profenza的输入。

如何调用代码以及如何设置属性
java.library.path
?在处理时,我只需单击run按钮,它就会为我运行它。能够成功查找并
导入org.openkinect.processing.*
但在导入Kinect的freenect库驱动程序时
导入org.openkinect.freenect.*它给出了该错误。我需要做什么才能看到我的
java.library.path
设置在哪里?您是否有
openkinect\u处理/library/v1/linux-armv6hf/libfreenect.so
?如果是这样,您是否可以尝试将其复制/移动到
openkinect\u processing/library/v1/linux arm/libfreenect.so
,重新启动处理,然后尝试再次运行草图?在我的
/Downloads/
文件夹中,我有
openkinect\u Processing/library/v1/linux-armv6hf/libfreenect。因此,我从上面的链接下载的
应该适用于linux arm板。你是说我应该将项目放在那里,还是复制文件
libfreenect.so
并将其放在Processing的库文件夹中?是的,请:
/home/pi/sketchbook/libraries
。如果可以的话请告诉我谢谢你的澄清!我将很快尝试并通知您。我的输出是:
/usr/java/packages/lib/arm:/lib:/usr/lib
,因此我必须将
/linux arm/libfreenect.So
放在任何java库路径中?我尝试将
/linux arm/libfreenect.So
放在我的
/lib
文件夹中,但它不会复制。我将尝试将它放在
/usr/lib
中,并尽快让您知道它是否有效。
/usr/lib/linux-arm/libfreenect.so