问题描述
|
我是JCuda的新用户,我开始在节点中尝试一些示例。
我正在运行一个简单的:
import jcuda.*;
import jcuda.runtime.*;
public class JCudaRuntimeTest{
public static void main(String args[]){
Pointer pointer = new Pointer();
JCuda.cudamalloc(pointer,4);
System.out.println(\"Pointer: \"+pointer);
JCuda.cudaFree(pointer);
}
}
我将每个库放在相同的文件夹中,并且可以轻松地编译代码,但是当我运行java JCudaRuntimeTest
时,出现了此异常。
Exception in thread \"main\" java.lang.NoClassDefFoundError: jcuda/Pointer
at JCudaRuntimeTest.main(JCudaRuntimeTest.java:7)
Caused by: java.lang.classNotFoundException: jcuda.Pointer
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:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.classLoader.loadClass(ClassLoader.java:248)
... 1 more
建议?
解决方法
NoClassDefFoundError
几乎总是意味着您的类路径中缺少某些内容。
运行程序时,请确保jcuda-<version>.jar
文件(以及其他可能的必要的JAR文件)在类路径中。
使用-cp
开关运行程序时,可以指定类路径,例如:
java -cp C:\\Project\\jcuda\\jcuda-0.3.2a.jar;C:\\Project\\mystuff\\classes org.mystuff.MyProgram
或通过设置CLASSPATH
环境变量(不建议)。