Слетели пути java[Решено] (После обновления jdk не могу запустить Netbeans)

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Archangel
Сообщения: 431
ОС: Slackware64-14.1

Слетели пути java[Решено]

Сообщение Archangel »

Недавно вышли мегаобновления jdk, после которых при запуске netbeans, ругается ошибкой:

Код: Выделить всё

which: no javac in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib/java/bin:/usr/lib/java/jre/bin:/usr/lib/java/bin:/usr/lib/kde4/libexec:/usr/lib/qt/bin:/usr/share/texmf/bin:.:/home/archangel/android-sdk-linux_86/tools/:/home/archangel/android-sdk-linux_86/tools/:/home/archangel/android-sdk-linux_86/tools/:/home/archangel/android-sdk-linux_86/tools/:/usr/include/GL/:/usr/include/FL/:/usr/lib64/)
which: no java in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib/java/bin:/usr/lib/java/jre/bin:/usr/lib/java/bin:/usr/lib/kde4/libexec:/usr/lib/qt/bin:/usr/share/texmf/bin:.:/home/archangel/android-sdk-linux_86/tools/:/home/archangel/android-sdk-linux_86/tools/:/home/archangel/android-sdk-linux_86/tools/:/home/archangel/android-sdk-linux_86/tools/:/usr/include/GL/:/usr/include/FL/:/usr/lib64/)
Cannot find java. Please use the --jdkhome switch.

Хотя в /etc/profile.d/ есть файл jdk.sh:

Код: Выделить всё

#!/bin/sh
export JAVA_HOME=/usr/lib64/java
export MANPATH="${MANPATH}:${JAVA_HOME}/man"
export PATH="${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin"


locate javac - говорит, что есть такой:
/usr/lib64/jvm/bin/javac
/usr/lib64/java/bin/javac

ЗЫ Slackware64 c compat-lib от alien'a

Почему тогда в путях нет этих прописей?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Слетели пути java[Решено]

Сообщение bormant »

Код: Выделить всё

$ source /etc/profile
картину не меняет?

Код: Выделить всё

$ ls -l /etc/profile.d/j*sh
наличие атрибута исполнения подтверждает?
multilib не ставит чего-нибудь, меняющего в PATH /lib64/ на /lib/ ?
Спасибо сказали:
Аватара пользователя
Archangel
Сообщения: 431
ОС: Slackware64-14.1

Re: Слетели пути java[Решено]

Сообщение Archangel »

Код: Выделить всё

root@samsung:~# ls -l /etc/profile.d/j*sh
-rwxr-xr-x 1 root root 145 апр.  19 20:34 /etc/profile.d/jdk.csh*
-rwxr-xr-x 1 root root 148 апр.  19 20:34 /etc/profile.d/jdk.sh*
-rwxr-xr-x 1 root root 124 сент. 29  2012 /etc/profile.d/jre.csh*
-rwxr-xr-x 1 root root 127 сент. 29  2012 /etc/profile.d/jre.sh*

source /etc/profile - ничего не меняет.
Даже если я выполню еще раз /etc/profile.d/jdk.sh - ничего не меняется.
Как узнать меняет ли что-то compat-lib? До обновления jdk работало, compat-lib не обновлялся и не менялся.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Слетели пути java[Решено]

Сообщение bormant »

Даже если я выполню еще раз /etc/profile.d/jdk.sh - ничего не меняется.
А если
source /etc/profile.d/jdk.sh
то PATH поменяется соответствующим образом? JAVA_HOME в порядок приходит? Может что-то переопределяется в скриптах, запускающих netbeans? К сожалению мне в отсутствие его проверить это непросто...
Спасибо сказали:
Аватара пользователя
Archangel
Сообщения: 431
ОС: Slackware64-14.1

Re: Слетели пути java[Решено]

Сообщение Archangel »

Что-то я не понимаю, у меня в домашней директории лежал файл .bashrc.в котором прописаны дополнительные пути которые мне нужны. Среди прочего были прописаны и старые пути java(от 32х разрядной системы), как оно до обновления jdk раньше работало ума не приложу. Сейчас убрал .bashrc, вроде заработало, после перезахода в систему, странно, что /etc/profile.d/jjdk.sh - все равно не переписывал пути.
Спасибо сказали:
german
Сообщения: 79
ОС: Linux

Re: Слетели пути java[Решено]

Сообщение german »

Смотрим содержимое jdk.sh:

Код: Выделить всё

#!/bin/sh
export JAVA_HOME=/usr/lib64/java
export MANPATH="${MANPATH}:${JAVA_HOME}/man"
export PATH="${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin"

[code]

Значит путь к компилятору устанавливается такой: /usr/lib64/java/bin

Сравните фактическое местонахождение javac, которое показывает locate:

/usr/lib64/jvm/bin/javac
/usr/lib64/java/bin/javac

locate показывает не то что есть на самом деле, а то что есть в его базе данных, которая может и устареть.

В каком каталоге на самом деле лежит javac ? В обоих ?
Что будет, если запустить с полным путем ?
так: /usr/lib64/java/bin/javac
или так: /usr/lib64/jvm/bin/javac

Возможно у Вас все находится не в java, а именно в jvm, а туда путей нет.
Спасибо сказали:
Аватара пользователя
Archangel
Сообщения: 431
ОС: Slackware64-14.1

Re: Слетели пути java[Решено]

Сообщение Archangel »

Ну я выше уже вроде как написал, что причиной проблем оказался устаревший файл .bashrc в домашней директории. А так, в /usr/lib64/jvm/bin лежат симлинки на /usr/lib64/java/bin. И смысла особо запускать javac - у меня небыло, нужно было запустить Netbeans.
Спасибо сказали:
Ответить