Вот более простой способ воспроизвести вашу проблему:
sed -e 's/foo/hello
world/'
Вместо того, чтобы заменить foo
двумя строками, он показывает sed: -e expression #1, char 11: unterminated `s' command
Это потому, что перевод строки завершает команду. Вы должны избежать их с помощью обратной косой черты:
sed -e 's/foo/hello\
world/'
Вы можете сделать это в своей переменной с расширением параметра Bash (${var//search/replace}
):
sed "s/@@MY_VALUE@@/${var//\n'/\\\n'}/"
Переменная среды JAVA_HOME установлена в .profile файле Вашего корневого каталога. (/Users/ejel/.profile?) Редактируют его и устанавливают его на то, чем Вы хотите, чтобы это было. Например:
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
От этой точки вперед, каждый раз, когда Вы открываете новое окно терминала, оно будет иметь набор JAVA_HOME к этому новому значению. Это не будет изменяться ни с какими существующими открытыми окнами.
Если Вы действительно ошеломлены к помещению этого в профиле, или если это конфликтует с другим программным обеспечением, оператор экспорта мог бы всегда выполняться в терминале вручную или входить в сценарий (например: setj6ev.sh), который выполняется однажды, Вы запускаете рабочие задачи Ant.
Тед, использование приложения Java Preferences не позволяет измените символическую ссылку CurrentJDK в /System/Library/Frameworks/JavaVM.framework/Versions, что и будет использоваться Ant, если переменная среды JAVA_HOME не установлена. Таким образом, вы можете либо изменить эту символическую ссылку вручную, либо установить переменную среды JAVA_HOME, но если вы не сделаете ни того, ни другого, Ant не будет использовать правильный JDK.
Вы можете увидеть версию jdk, которую использует Ant, выполнив команду
Вы можете увидеть версию jdk, которую использует Ant, выполнив команду
Вы можете увидеть версию jdk, которую использует Ant, выполнив команду
Вы, возможно, должны открыть новый экземпляр командной строки так, чтобы оболочка могла взять любые изменения в переменных среды.
Установка Explicitly переменная JAVA_HOME в Вашем .profile/.bashrc/.zshrc не является на самом деле рекомендуемым способом сделать это на Mac. Существуют программы, которые я видел, политы из шланга с явно набор JAVA_HOME к конкретной версии (чаши Грааля 1.1 с некоторыми пружинными ресурсами, например).
Корректный способ установить версию Java, который Вы хотите использовать, состоит в том, чтобы использовать/Application/Utilities/Java Preferences.app приложение.
Там, Вы перетаскиваете версию Java, который Вы хотите использовать для вершины. Это включит ту версию для всех приложений (и выполненные из командной строки и запущенные посредством процессов GUI).
Можно протестировать текущую версию путем выполнения этого из командной строки:
java -version
Мне на самом деле не нравится способ, которым Mac обрабатывает весь набор Java symlinked каталоги и файлы. Это не очевидно, и люди часто завинчивают его.
Посмотрите страницу разработчика яблока на этом для получения дополнительной информации.
Я добавил строку
export JAVA_HOME=`/usr/libexec/java_home`
В мой файл .zshrc, похоже, это помогает (.bash_profile или что-то еще, если вы используете bash).