Ошибка запуска приложения JCuda в Ubuntu - PullRequest
0 голосов
/ 15 апреля 2011

Я новый пользователь 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 голосов
/ 15 апреля 2011

NoClassDefFoundError почти всегда означает, что чего-то не хватает в вашем пути к классам.

Убедитесь, что файл jcuda-<version>.jar (а также, возможно, другие необходимые файлы JAR) находятся в пути к классам при запуске вашей программы.

Вы можете указать classpath при запуске вашей программы с переключателем -cp, например:

java -cp C:\Project\jcuda\jcuda-0.3.2a.jar;C:\Project\mystuff\classes org.mystuff.MyProgram

или установкой переменной среды CLASSPATH (не рекомендуется).

...