HOWTO · Java
$' ': Java の Command Not Found エラーを修正
このチュートリアルでは、エラー $ : command not found in Java について説明します。
このページの内容
このチュートリアルでは、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つのソリューションは、上記のエラーを解決します。