$' ': Java の Command Not Found エラーを修正
このチュートリアルでは、Java の $'\r': command not found
エラーについて説明します。
$'\r': command not found
エラーの原因 Java
オペレーティング システムが異なれば、同じ目的でも異なるコマンドが使用されます。 Cygwin などのプラットフォームの Linux プラットフォームで Unix スタイルのコマンドを実行しようとすると、エラー $'\r': command not found
が発生します。
\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 の 2つのファイルです。
Cygwin を使用してこれら 2つのファイルを実行すると、出力は次のようになります。
-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
エラー $'\r': command not found
が Windows または Cygwin で発生した場合、最良の解決策は 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 形式を選択します。
-
ファイルを保存して実行します。
これらの 3つのソリューションは、上記のエラーを解決します。
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook