在我的 WSL Kali linux 上安装 jdk 时出现语法错误

I got syntax error while installing jdk on my WSL Kali linux

我尝试在 WSL Kali Linux 上安装 JDK。我在 上关注了 fieldju 的回答。它成功了,javac,java 指令工作正常。

但是每当我打开 Kali 时,

-bash: /etc/profile.d/oraclejdk.sh: line 3: syntax error near unexpected token `('
-bash: /etc/profile.d/oraclejdk.sh: line 3: `                    export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files/WindowsApps/KaliLinux.54290C8133FEE_1.1.9.0_x64__ey8k8hqnwqnmg:/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 (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files/Intel/WiFi/bin/:/mnt/c/Program Files/Common Files/Intel/WirelessCommon/:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files/Microsoft SQL Server/130/Tools/Binn/:/mnt/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn/:/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/PowerShell/6/:/mnt/c/Users/User/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/User/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Program Files/Bandizip/:/mnt/c/Program Files/Java/jdk-12.0.1/bin:/mnt/c/Users/User/AppData/Local/GitHubDesktop/bin:/usr/lib/jvm/oracle_jdk8/bin:/usr/lib/jvm/oracle_jdk8/db/bin:/usr/lib/jvm/oracle_jdk8/jre/bin'

这个错误来了。我该如何解决这个问题?

这是我的 /etc/profile.d/oraclejdk.sh 文件

根据 bash 为您的 /etc/profile.d/oraclejdk.sh 提供的错误消息,看起来您只需要 double-quote 分配给您的整个值路径变量。

而不是这个:

导出路径=/usr/local/sbin:/usr/local/bin...

试试这个:

导出 PATH="/usr/local/sbin:/usr/local/bin..."

请注意,双引号是必需的,因为您的某些文件夹名称带有白色 space。结果 bash 将第一个 space 之后的所有内容视为另一个表达式,而不是 PATH 值的一部分。此外,“(”字符对 bash 具有特殊含义,因此也需要用双引号引起来。