无法在 CentOS WSL2 中运行 Java:加载主类文件时出错。NVIDIA

问题描述 投票:0回答:1

我尝试运行 shell 脚本来运行 Java 中的应用程序。由于版权问题,我无法发布整个脚本。但是执行Java的行如下(经过一些修改)

$java_vm -Xmx128m -classpath "$CLASSPATH"  -DDISPLAY=$DISPLAY -DPATH=$PATH -Djava.library.path=. -DEXEC_PLAT=$plat -jar $kp_dir/lib/SomeJAR.jar $args 2>&1

其中 $java_vm 是 java 的路径

执行脚本时,出现以下错误:

错误:无法找到或加载主类文件。NVIDIA 引起原因:java.lang.ClassNotFoundException:Files.NVIDIA

我在 WSL2 CentOS 系统中运行它。我发现可以通过完全删除

-DPATH=$PATH
选项来修复此错误。但是,这样做会删除应用程序访问互联网的能力(可能是因为删除了一些重要的联网路径)

这是我的 PATH 变量

/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin:/usr/lib/jvm/jre-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files/WireGuard/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/usbipd-win/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Users/myName/AppData/Local/Programs/Python/Python312/Scripts/:/mnt/c/Users/myName/AppData/Local/Programs/Python/Python312/:/mnt/c/Users/myName/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/myName/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Users/myName/AppData/Local/GitHubDesktop/bin:/mnt/c/Program Files/KS-Wireshark:/root/bin

我尝试在WSL2 CentOS系统中运行shell脚本。我希望它能正常运行,但我得到了这个错误,可以通过删除 -DPATH 选项来解决。但这样做会删除应用程序联网功能

java environment-variables centos windows-subsystem-for-linux wsl-2
1个回答
0
投票

问题是它找不到您在这部分路径变量中传递的

Files.NVIDIA
:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA

确保文件

Files/NVIDIA
存在并正常运行。

© www.soinside.com 2019 - 2024. All rights reserved.