установленный Java, но Java - версия, не показывающая новый Java

Использование: "$@" если Вы хотите представить исходные аргументы (включая никакие аргументы) точно.

Существует 5 нотаций для упоминания:

  • $@
  • $*
  • "$@"
  • "$*"
  • ${1+"$@"}

Первые два эквивалентны; оба разделяют слова в списке аргументов и передают их на вызываемую команду. Они редко - верный выбор.

Вторые два радикально отличаются. "$@" нотация эффективно копирует аргументы оболочке (или набор аргументов через set команда) к вызываемой команде, сохраняя количество аргументов, пробелов в них и разделения между ними. Если существуют нулевые аргументы, это ничего не генерирует.

"$*" нотация вставляет все аргументы в единственную строку, помещая пространство между аргументами, но сохраняя пробелы в аргументах. Это подходит для использования в контекстах, таких как:

echo "You said, '$*'"

где предельная точность исходной командной строке не крайне важна.

Заключительная нотация, ${1+"$@"}, похмелье с прошлых дней, с которыми можно столкнуться в старых сценариях оболочки. Когда-то давно (и давным-давно - как 30 лет назад), Оболочку Bourne рассматривают "$@" как единственный пустой аргумент, когда не было никаких аргументов. Это не было поведением в течение долгого времени, но некоторые сценарии, записанные очень давно, могли бы все еще защитить себя при помощи этой нотации. ${1+X} нотация означает 'если $1 установлен на что-либо, даже пустую строку, затем обеспечьте значение X. В рассматриваемой нотации, X "$@", который является списком аргументов, когда там, как известно, по крайней мере один - и иначе никакие аргументы. Что означает то же как "$@" в любой современной оболочке.

1
09.02.2011, 20:16
3 ответа

Я понял это. Я просто добавил новый путь Java к началу моей переменной пути вместо конца, и это работало.

export PATH=/usr/local/testing/jdk1.6.0_23/bin:$PATH

Это работало. Теперь я собираюсь установить в своем сценарии, таким образом, он сделает автоматически.

3
27.01.2020, 23:17

Попытайтесь удалить /opt/j2sdk/bin и /usr/local/testing/jdk1.6.0_23/bin от Вашего PATH.

Когда Вы работали alternatives --config, это должно было измениться /usr/bin/java указать на 1.6.0 версий.

Если Вы добавляете их к PATH и используют alternatives, у Вас будет два места для конфигурирования вещей, и это станет сбивающим с толку.

2
27.01.2020, 23:17

Для Centos 7 или RHEL 7 :Я столкнулся с этой проблемой при установке pycharm -community -2017.1.4 на RHEL 7.1. Ошибка была:

Unsupported Java Version: Cannot start under Java 1.7.0_75-mockbuild_2015_01_16_09_12-b00: Java 1.8 or later is required

Я обнаружил, что требуемая версия Java установлена, но не обнаружена. Затем я провел поиск в Интернете и использовал следующее для решения этой проблемы:

# alternatives --config java

выход:

Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/java-1.7.0-openjdk1.7.0.75-2.5.4.2.el7_0.x86_64 /jre/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
 + 3           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-2.b13.el7.x86_64/jre/bin/java
   4           /usr/java/jdk1.8.0_91/jre/bin/java

Enter to keep the current selection[+], or type selection number:

Теперь введите номер нужной версии и нажмите клавишу ввода следующим образом:

Enter to keep the current selection[+], or type selection number:4

Проверить версию Java:

# java -version

Выход:

java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
0
27.01.2020, 23:17

Теги

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