Как запустить Java прямо в терминале

Когда вы export переменная, она нигде не добавляется ни в какой файл.

Эффект export, а не просто назначение переменной, - это передача переменной в среды всех дочерних процессов оболочки. Он ничего не делает; он не изменяет файлы конфигурации оболочки. После выхода оболочки и всех ее дочерних процессов экспортируемая переменная исчезнет! Когда вы открываете новую оболочку, которая не является потомком первого shell, эта оболочка не будет помнить вашу переменную.

На самом деле нет необходимости в export PATH, поскольку PATH уже является переменной окружения , Он уже экспортируется; он будет автоматически передаваться в среду дочерних процессов, а при его изменении дочерние процессы также наследуют изменение.

Вы можете увидеть это, используя printenv, команду для печати переменных среды :

$ foo=bar; echo $foo             # set a variable   
bar                              # the shell knows it
$ printenv foo                   # but it's not in the environment...
$ export foo; printenv foo       # export the variable and check again
bar                              # there it is!
$ foo=new; printenv foo          # change the variable
new                              # the change is inherited
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$ PATH=/usr/bin; printenv PATH   # printenv is in /usr/bin so keep that!
/usr/bin                         # the change was inherited

(Теперь мне нужно выйти из этой оболочки, чтобы вернуть мой PATH или source /etc/environment, потому что любая новая оболочка, которую я запускаю из этой оболочки, наследует эту переменную PATH, которую я испортил. .)

он нигде не добавлен нигде

PATH - это единственная переменная, насколько мне известно, которая по умолчанию установлена ​​в [ f9] на Ubuntu. Я рекомендую не редактировать /etc/environment, чтобы установить PATH, или если вы это сделаете, будьте осторожны, чтобы сделать резервную копию исходного файла, потому что у вас не будет другого способа восстановить исходный PATH (если вы не записали его где-нибудь или не удивительная память). Также имейте в виду, что над содержимым не будет никаких расширений, поэтому вы должны использовать полные пути, а не $PATH или $GOPATH или ~. Если вы напишете такие вещи, они будут буквально в PATH, и если ваш PATH будет буквально $PATH:~/workspace/me/go, вы не сможете запускать какие-либо команды (кроме встроенных в оболочку) без использования их полных путей. [!d8 ]

Я также не рекомендую устанавливать PATH в .bashrc, потому что каждая интерактивная оболочка Bash читает .bashrc, и довольно часто запускать новую оболочку из оболочки и т. д. Если вы ставите что-то вроде

PATH="$PATH:$HOME/foo"

в вашем .bashrc, вы обнаружите, что /home/user/foo добавляется к вашему PATH несколько раз; каждый раз, когда оболочка запускает оболочку, PATH снова расширяется. В конечном итоге это может замедлить работу, особенно если вы добавили много путей. Кроме того, только интерактивные оболочки Bash читают ~/.bashrc, поэтому, если вы используете оболочку, отличную от Bash, или запускаете скрипт, не являясь дочерним процессом интерактивной оболочки Bash, она не будет иметь эту переменную.

Вместо этого я рекомендую добавить строку к ~/.profile, чтобы расширить вашу PATH. Этот файл читается только командами входа в систему; обычно он читается только один раз, когда вы входите в свой сеанс, поэтому PATH будет добавляться только один раз, и все оболочки будут наследовать переменные окружения, установленные там, а не только интерактивные оболочки Bash. Обычно к этому файлу добавляются переменные среды. Таким образом, вы можете открыть ~/.profile в текстовом редакторе и добавить строки, которые говорят что-то вроде:

GOPATH="$HOME/workspace/me/go"
PATH="$PATH:$GOPATH/bin"

Это хорошая идея процитировать путь, как показано, в случае, если какая-либо из каталогов включает специальные (это также хорошая идея создать каталоги, у которых нет особых символов в их именах, но все происходит), и если вы его цитируете, вы не можете использовать ~ как ярлык для /home/user, потому что двойные кавычки (") подавляет расширение тильды, но вместо этого вы можете использовать $HOME, потому что расширение параметра все еще выполняется, а $HOME станет /home/user.

После редактирования сохраните файл и выйдите из него и запустите source ~/.profile, и ваш PATH всегда будет включать /home/user/workspace/me/go.

1
задан 11 May 2018 в 04:17

3 ответа

Вы можете сделать это, установив java jdk version 9, а затем используя jshell.

Просто напишите это в команде: -

'$ jshell` Тогда это получится подскажите: -

|  Welcome to JShell -- Version 9.0.4
|  For an introduction type: /help intro

jshell>

Затем просто запустите свой код.

0
ответ дан 22 May 2018 в 10:48
  • 1
    Не могли бы вы включить информацию о том, как установить JDK 9? – vidarlo 11 May 2018 в 09:47
  • 2
    это может стать следующей темой; но установка jdk 9 может быть выполнена через здесь – Vicrobot 11 May 2018 в 09:49

Вы можете сделать это, установив java jdk version 9, а затем используя jshell.

Просто напишите это в команде: -

'$ jshell` Тогда это получится подскажите: -

| Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell>

Затем просто запустите свой код.

0
ответ дан 17 July 2018 в 14:37

Вы можете сделать это, установив java jdk version 9, а затем используя jshell.

Просто напишите это в команде: -

'$ jshell` Тогда это получится подскажите: -

| Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell>

Затем просто запустите свой код.

0
ответ дан 20 July 2018 в 14:41

Другие вопросы по тегам:

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