我是一个新的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
建议?
答案 0 :(得分:0)
NoClassDefFoundError
几乎总是意味着类路径中缺少某些内容。
运行程序时,请确保jcuda-<version>.jar
文件(以及可能的其他必要JAR文件)在类路径中。
使用-cp
开关运行程序时,可以指定类路径,例如:
java -cp C:\Project\jcuda\jcuda-0.3.2a.jar;C:\Project\mystuff\classes org.mystuff.MyProgram
或设置CLASSPATH
环境变量(不推荐)。