猿问

异常在线程 “main” java.lang.NoClassDefFoundError:

我正在尝试设置JCuda并执行示例添加内核。当我在编译JCudaVectorAdd后尝试执行JCudaVectorAdd.java时,我收到以下错误:


Exception in thread "main" java.lang.NoClassDefFoundError: jcuda/driver/JCudaDriver

        at JCudaVectorAdd.main(JCudaVectorAdd.java:38)

Caused by: java.lang.ClassNotFoundException: jcuda.driver.JCudaDriver

        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

        ... 1 more

我已经创建了一个bash文件,其中包含我执行的步骤以到达我所在的位置:


#!/bin/bash


# This system has multiple Cuda instances, so we need to load the correct one

module load cuda-9.2


# Try to remove any jcuda zip files that may have been created previously

rm $HOME/jcuda.zip


# Get jcuda zip file from online, storing into $HOME directory

wget http://www.jcuda.org/downloads/JCuda-All-0.9.2.zip -O $HOME/jcuda.zip


# Remove the 0.9.2 directory in case it exists to get ready for a clean install

rm -rf $HOME/jcuda/JCuda-All-0.9.2


# Unzip the file and store within jcuda directory. NOTE: The version number will be maintained as jcuda/JCuda-ALL-0.9.2.zip, so multiple versions of jcuda can be installed using this script

unzip $HOME/jcuda.zip -d $HOME/jcuda


# Remove the zipped file now that it is no longer needed

rm $HOME/jcuda.zip


# Move into the newly create jcuda directory

cd $HOME/jcuda/JCuda-All-0.9.2/


# Get the example Main program for Vector addition from Jcuda site

wget http://www.jcuda.org/samples/JCudaVectorAdd.java



似乎我在某个地方遗漏了一个步骤,尽管我对java或cuda / jcuda不够熟悉,无法确定我错过了什么。任何人都可以为我指出如何解决此问题的方向,无论是其他步骤是否正在修改我执行的步骤?


不负相思意
浏览 83回答 1
1回答

收到一只叮咚

看来你需要告诉JRE在哪里可以找到相应的操作系统库来运行cuda。如果您查看输出,则表示找不到 。libcuda.so.1找到这些库在文件系统中的位置,并将属性设置为指向该库。java.library.pathjava -Djava.library.path=/path/to/cudalibdir/ <rest of commandline>如果您的系统没有该库,则可能需要在本地安装或编译它。免责声明:我没有专门使用cuda的经验,但使用过其他需要操作系统级库才能运行的jar。
随时随地看视频慕课网APP

相关分类

Java
我要回答