在ubuntu中运行JCuda应用程序时出错

时间:2011-04-14 23:23:50

标签: java ubuntu cuda parallel-processing

我是一个新的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

建议?

1 个答案:

答案 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环境变量(不推荐)。