10

次のコマンドを使用して、Cygwin で JAVA_HOME を設定しようとしています。

export JAVA_HOME="/cygdrive/c/Program Files/Java/jdk1.7.0_10"

しかし、cd $JAVA_HOMEそうすると、次のエラーが発生します。

$ cd $JAVA_HOME
-bash: cd: /cygdrive/c/Program: No such file or directory

引用してスペースをエスケープしようとしましたが(つまり、\)、どれもうまくいきませんでした。他に何が考えられますか?

ありがとう、

4

7 に答える 7

16

私もこの問題に直面し、多くの投稿を見ましたが、実際には何も機能しませんでした。私が行った小さなトリックがあり、物事が機能し始めました。

私の JAVA_HOME は C:/Program Files/Java/jdk1.7.0_23 に設定されていました。問題は Program Files ディレクトリにあり、同じエラーが発生していました。

Windows では、スペースを含まない、スペースを含むすべてのディレクトリに対して短い名前が作成されます。コマンド プロンプトで dir /X コマンドを実行すると表示されます。Program Files の短縮名は PROGRA~1 でした。

My Computer の Windows 環境変数で、JAVA_HOME を C:/PROGR~1/Java/jdk1.7.0_23 に変更し、hadoop-env.sh で JAVA_HOME を /cygdrv/c/PROGRA~1/Java/jdk1 に変更しました。 7.0_23.

うまくいきました。

于 2013-08-25T13:43:09.243 に答える
8

あなたはJAVA_HOME正しく設定しました。cdでは、正しくしましょう。

cd "$JAVA_HOME"
于 2013-01-28T17:10:11.350 に答える
5

面倒な Windows 環境変数の使用を避け、Windows エクスプローラーからコピーした実際のパス文字列を使用するために、起動スクリプトに次を追加することをお勧めします。

             TMP=`cygpath -sw "C:\Program Files\Java\jdk1.8.0_31"`
export JAVA_HOME=`cygpath -u $TMP`

最初の呼び出しcygpathでは、短いウィンドウ パスが取得されます。2 番目は、cygwin で正常に動作するu nix 形式に変換します。

これも正常に動作するようになりました:

$ cd $JAVA_HOME
于 2015-02-10T20:48:10.747 に答える
2

短い名前を使用して、パスにスペースが含まれないようにしてください。

「C:\Program Files」には、短い名前 C:\Progra~1 が必要です (DOS dir コマンドを使用するか、ファイル エクスプローラーのアドレス バーに入力して確認できます)。

JAVA_HOME を次のように設定します。

export JAVA_HOME="/cygdrive/c/Progra~1/Java/jdk1.7.0_10"
于 2013-07-01T20:11:29.933 に答える
2

DOS subst コマンドを使用して、JAVA_HOME パス名のスペースを取得してみてください。ドライブ J を仮定します。マウントされていないか、使用されていません。

DOS シェルで

subst j: "C:/Program Files/Java/jdk1.7.0_45"

J: は C:/Program Files/Java/jdk1.7.0_45 の省略形になりました

J に cd できるようになりました:

Cygwin を実行し、

export JAVA_HOME="J:"
于 2014-03-20T02:01:42.210 に答える
1

「Program Files」の外、特に c:\tools に Java をインストールしました。次に、cygpath を使用して C:\tools\jdk1.8.0_144 を /cygdrive/c/tools/jdk1.8.0_144 に変換できます。

于 2017-08-09T18:51:03.667 に答える