首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何克服CLASSPATH问题并在OpenKinect上编译OSX示例?

我如何克服CLASSPATH问题并在OpenKinect上编译OSX示例?
EN

Stack Overflow用户
提问于 2011-11-26 19:24:26
回答 1查看 604关注 0票数 1

很抱歉发布了另一个Java jar问题。我确实看了一下现有的similar questions,但仍然没有使用现有答案中的建议来运行Example类。

这是我到目前为止尝试过的:

代码语言:javascript
复制
george-profenzas-macbook:src george$ ls
Example.java    org
george-profenzas-macbook:src george$ javac -cp $CLASSPATH Example.java 
george-profenzas-macbook:src george$ ls
Example$1.class Example$2.class Example$3.class Example.class   Example.java    org
george-profenzas-macbook:src george$ java -cp $CLASSPATH Example
Exception in thread "main" java.lang.UnsatisfiedLinkError: no OpenKinect in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at org.openkinect.Context.<clinit>(Context.java:43)
    at Example.main(Example.java:52)
george-profenzas-macbook:src george$ echo $CLASSPATH
/Users/george/Downloads/shiffman-libfreenect-2e0f185/wrappers/java/dist/OpenKinect.jar:.

看起来它没有找到通向OpenKinect的路径。我尝试复制同一文件夹(cp ../../dist/OpenKinect.jar)中的jar,然后再次尝试运行Example:

代码语言:javascript
复制
george-profenzas-macbook:src george$ java -cp OpenKinect.jar Example
Exception in thread "main" java.lang.NoClassDefFoundError: Example
Caused by: java.lang.ClassNotFoundException: Example
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

现在它似乎没有找到指向Example的路径,所以我假设$CLASSPATH中的.没有工作,我不知道为什么。

我一直在玩-cp,但是java说“不!”:

代码语言:javascript
复制
george-profenzas-macbook:src george$ java -cp "OpenKinect.jar:./Example.java" Example
Exception in thread "main" java.lang.NoClassDefFoundError: Example
Caused by: java.lang.ClassNotFoundException: Example
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
george-profenzas-macbook:src george$ java -cp "OpenKinect.jar:." Example
Exception in thread "main" java.lang.UnsatisfiedLinkError: no OpenKinect in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at org.openkinect.Context.<clinit>(Context.java:43)
    at Example.main(Example.java:52)
george-profenzas-macbook:src george$ java -cp .:OpenKinect.jar Example
Exception in thread "main" java.lang.UnsatisfiedLinkError: no OpenKinect in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at org.openkinect.Context.<clinit>(Context.java:43)
    at Example.main(Example.java:52)

它似乎要么找到jar的路径,而不是示例的路径,要么反过来,我在绕圈跑。我将java路径设置为指向1.664bit,因此java -version会打印:

代码语言:javascript
复制
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)

我甚至将jar复制到/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Classes,将jnilib复制到/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Libraries,但没有复制到joy。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-26 19:35:07

您在这里看到的是对错误消息的误解。类路径和库路径之间存在差异。虽然您使用jar和当前目录的点获得了正确的类路径,但您没有指定Kinect SDK的本机部分所在的路径。

要执行此操作,请添加

代码语言:javascript
复制
-Djava.libray.path=(path to where the native Kinect libs lie)

我不知道OpenKinect的结构,但它通常是某种"bin“或”本地“目录。

需要说明的是:这是OpenKinect.dll (适用于Windows)或libOpenKinect.so (Linux及其朋友)等的路径。

请参阅页面底部的http://openkinect.org/wiki/Java_JNI_Wrapper

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8278091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档