Я раздражаюсь, пробуя это, но все, что я пытаюсь сделать, установлено JAVA_HOME в/etc/environment файле в оболочке Bash в окнах, которые открываются теперь с Windows. Мой локальный Java в C:\Program Files\Java\jdk1.8.0_91 так в моем/etc/environment, который я помещаю
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export JAVA_HOME="/mnt/c/Program\ Files/Java/jdk1.8.0_91/"
Считайте онлайн, что для определения пространства нужно использовать \
. При выполнении этого:
cd /mnt/c/Program\ Files/Java/jdk1.8.0_91/
Я могу перейти к каталогу, но при помещении того же в/etc/environment файле и определении источника его, если я работаю
echo $JAVA_HOME
/mnt/c/Program\ Files/Java/jdk1.8.0_91/
Я могу сказать, что это неправильно, поскольку это читает его как \, и который является почему выполнение
cd $JAVA_HOME
сбои
Ubuntu 14.04.5 LTS
Если кто-то может предложить относительно того, как решить, это будет значительно цениться.Спасибо.
Для использования пространства в мире Linux, необходимо сделать один (и только один) следующего:
Кавычка все вещи:
JAVA_HOME="/mnt/c/Program Files/Java/jdk1.8.0_91/"
cd "$JAVA_HOME"
Escape пространство:
JAVA_HOME=/mnt/c/Program\ Files/Java/jdk1.8.0_91/
cd "$JAVA_HOME"
, Но не оба. Проблема здесь - то, что заключение в кавычки защищает заключенную в кавычки строку и заставляет ее интерпретироваться буквально. Таким образом, в то время как foo\ bar
средства foo
, пространство и затем bar
, "foo\ bar"
средства foo
, обратная косая черта, пространство и затем bar
.
кроме того, каждый раз, когда Вы используете переменную, необходимо в значительной степени всегда помещать ее в двойных кавычках иначе команда, которой Вы передаете ее, считает два аргумента. Вы видите то, что пошло не так, как надо, если Вы включаете отладку удара путем выполнения set -x
(работайте set +x
для выключения ее):
$ set -x
$ cd $JAVA_HOME
+ cd /mnt/c/Program Files/Java/jdk1.8.0_91/
bash: cd: too many arguments
то, Что Вы выполнили, было cd /mnt/c/Program Files/Java/jdk1.8.0_91/
. Так как пробел разделяет аргументы, это означает, что Вы передали cd
два отдельных аргумента: /mnt/c/Program
и Files/Java/jdk1.8.0_91/
. Заключение в кавычки заставляет cd
(или любой другой инструмент) читать все это как отдельный аргумент.
Дополнительные материалы для чтения:
Не используйте экспорт в /etc/environment
, это - просто простой файл и не сценарий. Это читает строки один за другим и устанавливает переменные тот путь.
Снова, это не будет команды выполнения.
Теперь, необходимо установить переменную JAVA_HOME для среды.
Сделайте следующие вещи:
Найдите путь, где Ваш Java установлен. (Скорее всего, в/usr/lib/jvm/{JAVA_VERSION}).
Теперь на другом терминале, откройте sudo vi/etc/environment