HOWTO · Java
$' ' 수정: Java에서 명령을 찾을 수 없음 오류
이 튜토리얼은 Java에서 $ : command not found 오류를 보여줍니다.
이 페이지의 내용
이 튜토리얼은 Java에서 $'\r': command not found 오류를 보여줍니다.
Java에서 $'\r': command not found 오류의 원인
서로 다른 운영 체제는 동일한 목적을 위해 서로 다른 명령을 사용합니다. $'\r': command not found 오류는 Cygwin과 같은 플랫폼의 Linux 플랫폼에서 Unix 스타일 명령을 실행하려고 할 때 발생합니다.
\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"
.bash_profile:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
이제 위의 코드는 JAVA_HOME 경로를 영구적으로 설정하려는 Bash의 두 파일입니다.
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'
이제 오류는 명령이 작동하지 않는다는 것을 보여줍니다. 그 이유는 Windows가 명령의 Unix/OSX 형식을 지원하지 않으며 Cygwin도 Windows에서 Linux Unix 응용 프로그램을 실행하는 플랫폼으로 간주되기 때문입니다.
Java에서 $'\r': command not found 오류 수정
이 오류에 대한 해결 방법을 살펴보겠습니다.
솔루션 1
Windows 또는 Cygwin에서 $'\r': 명령을 찾을 수 없음 오류가 발생하는 경우 최상의 솔루션은 dos2unix 명령을 사용하는 것입니다.
dos2unix는 줄 바꿈 또는\r문자를 Unix 또는 Cygwin 플랫폼에서 호환되도록 수정합니다.dos2unix명령을 사용하기 전에 파일을 수정해야 하므로 파일을 백업해야 합니다. 백업하지 않은 경우unix2dos명령을 사용하여 변경 사항을 되돌립니다.dos2unix명령은 macOS X에서 지원되지 않습니다.- 이 명령을 사용하기 전에
dos2unix를 설치해야 합니다.
해결책 2
dos2unix를 설치하지 않으려면 다른 해결책이 있습니다.
-
이 오류를 일으키는
\r문자를 제거할 수 있습니다. 이 후행 문자를 제거하려면 다음 명령을 사용하십시오.sed -i 's/\r$//' filename -
여기서 filename은 오류를 일으키는 파일입니다.
-
-i옵션은 내부 편집에 사용됩니다. -
이 명령은 입력 파일에서 후행
\r을 삭제합니다.
해결책 3
이것은 더 간단합니다. Notepad++ 또는 VScode와 같은 소프트웨어를 사용하여 명령 형식을 변경할 수 있습니다.
예를 들어 메모장++에서:
-
Notepad++에서 Bash 파일을 엽니다.
-
편집 -> EOL변환으로 이동합니다. -
Unix/OSX 형식을 선택합니다.
-
파일을 저장하고 실행하십시오.
이 세 가지 솔루션은 위에서 설명한 오류를 해결합니다.