• 修复 Java 错误 $‘ ‘: Command Not Found


    本篇文章介绍了 Java 中的 $'\r': command not found 错误。


    Java 中 $‘\r’: command not found 的原因

    不同的操作系统使用不同的命令来实现相同的目的。 当我们尝试在 Cygwin 等平台的 Linux 平台上运行 Unix 风格的命令时,会出现错误 $‘\r’: command not find

    \r 用于回车,这通常意味着光标应移动到最左侧。 这是此错误的示例。

    让我们尝试在 Windows 上使用 Cygwin Bash 永久设置 JAVA_HOME 路径。 使用以下 bash 命令和配置:

    .bashrc:
    
    export PATH="$JAVA_HOME/bin:$PATH"
    export JAVA_HOME=$JAVA_HOME:"/cygdrive/C/Program Files/Java/jdk-17.0.2"
    
    • 1
    • 2
    • 3
    • 4

    .bash_profile:

    if [ -f ~/.bashrc ]; then
       source ~/.bashrc
    fi
    
    • 1
    • 2
    • 3

    现在,上面的代码是 Bash 中的两个文件,试图永久设置 JAVA_HOME 路径。

    使用 Cygwin 运行这两个文件时,输出为:

    -bash: $'\377\376if': command not found
    -bash: $'then\r': command not found
    : No such file or directory
    -bash: /cygdrive/c/Users/Sheeraz//.bash_profile: line 3: syntax error near unexpected token `fi'
    -bash: /cygdrive/c/Users/Sheeraz//.bash_profile: line 3: `fi'
    
    • 1
    • 2
    • 3
    • 4
    • 5

    现在错误表明该命令不起作用。 原因是Windows不支持Unix/OSX格式的命令,而Cygwin也被认为是在Windows上运行Linux Unix应用程序的平台。


    修复 Java 中的 $‘\r’: command not found 错误

    我们来看看这个错误的解决办法。

    解决方案1

    当 Windows 或 Cygwin 上出现 $‘\r’: command not find 错误时,最好的解决方案是使用 dos2unix 命令。

    1. dos2unix 将修改换行符或 \r 字符以在 Unix 或 Cygwin 平台上兼容。
    2. 在使用 dos2unix 命令之前,必须备份文件,因为该命令会修改文件。 如果您还没有备份,请使用命令 unix2dos,这将撤销更改。
    3. macOS X 不支持 dos2unix 命令。
    4. 使用此命令之前,必须安装 dos2unix

    解决方案2

    如果你不想安装dos2unix,那么还有另一个解决方案:

    1. 我们可以删除导致此错误的 \r 字符。 使用以下命令删除该尾随字符:
    sed -i 's/\r$//' filename
    
    • 1
    1. 这里的文件名将是导致错误的文件。
    2. -i 选项用于就地编辑。
    3. 该命令将从输入文件中删除尾随的 \r。

    解决方案3

    这个就比较简单了。 我们可以使用Notepad++或VScode等软件来更改命令格式。

    例如,在 Notepad++ 中:

    • 在 Notepad++ 中打开 Bash 文件。
    • 转到编辑 -> EOL 转换。
    • 选择 Unix/OSX 格式。
    • 保存您的文件并运行它。

    这三种解决方案将解决上述错误。

  • 相关阅读:
    Discrete Optimization课程笔记(2)—Constraint Programming约束规划(上)
    图床项目进度(三)——文件展示页
    beamManagement(四)connected mode UL training
    opencv-python 车牌检测和识别
    java和VB中按键事件处理:解析 KeyCode、KeyAscii; KeyDown/KeyUp/KeyPress 的关系区别及应用
    点亮一个LED
    商业保密协议
    MDK(Keil)的MAP文件都记录了啥
    【力扣每日一题】2023.9.2 最多可以摧毁的敌人城堡数量
    SpringBoot运维实用篇
  • 原文地址:https://blog.csdn.net/fengqianlang/article/details/136596977