Установил Java 7 на Mac OS X, но Terminal все еще использует версию 6

Самый короткий путь, вероятно, будет заключаться в использовании fileinput module . Например, следующее добавляет номера строк в файл, на месте:

import fileinput

for line in fileinput.input("test.txt", inplace=True):
    print "%d: %s" % (fileinput.filelineno(), line),

. Что происходит здесь:

  1. Исходный файл перемещается в файл резервной копии
  2. Стандартный вывод перенаправляется на исходный файл в цикле
  3. . Таким образом, любые операторы print записывают обратно в исходный файл

fileinput имеет больше колоколов и свистов. Например, он может использоваться для автоматической работы со всеми файлами в sys.args[1:], без необходимости явно перебирать их. Начиная с Python 3.2, он также предоставляет удобный менеджер контекста для использования в инструкции with.


Хотя fileinput отлично подходит для сценариев throwaway, я бы с осторожностью использовал его в реальном коде потому что, по общему признанию, это не очень читаемо или знакомо. В реальном (производственном) коде стоит потратить еще несколько строк кода, чтобы сделать процесс явным и, следовательно, сделать код читаемым.

Есть два варианта:

  1. Файл не слишком большой, и вы можете просто прочитать его целиком в памяти. Затем закройте файл, откройте его в режиме записи и напишите измененное содержимое назад.
  2. Файл слишком велик для хранения в памяти; вы можете переместить его во временный файл и открыть его, читая его по строкам, записывая обратно в исходный файл. Обратите внимание, что для этого требуется в два раза больше хранилища.

384
задан Yang 17 December 2013 в 02:44
поделиться

6 ответов

Вы можете выполнить следующую команду в своем терминале:

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

И это заменит старый Java новым.

11
ответ дан Amulya Kashyap 17 December 2013 в 02:44
поделиться

Начиная с Эль-Капитана, трудно удалить символическую ссылку /usr/bin/java из-за введения новой политики «без корня».

Поэтому я просто добавил путь к последней версии Java (в моем случае это /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin) в PATH в моем файле .bashrc:

# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH

Чтобы перезагрузить ваш .bashrc для текущего сеанса, запустите source ~/.bashrc в оболочке. Это нужно делать только для сеансов, которые были начаты до изменения файла .bashrc.

Теперь используется последняя версия, когда вы используете java в оболочке.

27
ответ дан TabeaKischka 17 December 2013 в 02:44
поделиться

vi ~/.bash_profile

add

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

Это говорит вашей целевой ссылке /usr/bin/java использовать последний пакет Java 7, установленный в

/Library/Java/JavaVirtualMachines/

Таким образом, для JDK 1.7.0_17 JAVA_HOME было бы:

/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home

Примечание. В последнее время в этой области произошли значительные изменения. переместите Mac OS X из собственных пакетов Java компании Appels в пакеты Java на основе Oracle. Вышеупомянутое решение работает нормально с Mac OS X 10.8.2

103
ответ дан Uwe Günther 17 December 2013 в 02:44
поделиться

Установщик Oracle помещает Java в /Library/Internet Plug-Ins/JavaAppletPlugin.plugin. И это не переписывает /usr/bin/java. Итак, если вы выдадите

whereis java

в терминале, он вернет / usr / bin / java. (который в свою очередь указывает на /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java, который является версией Apple 1.6).

Итак, если вы хотите использовать новую версию Java, замените символическую ссылку /usr/bin/java, чтобы она указала вместо /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java:

sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin
298
ответ дан Anton Rudeshko 17 December 2013 в 02:44
поделиться

Могу ли я предложить вам взглянуть на инструмент Jenv

Это позволит вам в любое время переключаться между установленными JVM.

Просто как:

jenv global oracle-1.7

, а затем для тестирования:

jenv global oracle-1.6

И у вас есть гораздо больше команд.

7
ответ дан TitiMoby 17 December 2013 в 02:44
поделиться

Последний 100%-й эффективный метод:


в ударе:

vim ~/.bash_profile

добавляют

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
  • :wq для сохранения
  • удар выхода силы cmd+q
  • открытый удар снова и тип в java -version

, Но на самом деле это точки контура к jre не jdk.

, Если Вы хотите указать на путь к JDK, Вам нужно

  1. , Удостоверяются, что Вы установили JDK, ни одно время выполнения JRE
  2. не заменяет предыдущий путь к PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk", можно перейти в /Library/Java/JavaVirtualMachines, чтобы удостовериться, что Вы установили версию JDK, который Вы ожидали.
0
ответ дан 22 November 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: