LINUX.ORG.RU

Java и Linux

 


1

1

При установке Intellij IDEA она выдает ошибку:
«'tools.jar' seems to be not in IDEA classpath.
Please ensure JAVA_HOME points to JDK rather than JRE.»
Что не так?


Ответ на: комментарий от I-Love-Microsoft

Я более чем уверен, что точно такой же вопрос у него возникнет и на венде. Кто-то, может быть, считает, что зная какой-нибудь кросс-платформенный язык можно навсегда абстрагироваться от ОС, лабая на нём всякие абстракции и никогда не опускаясь до понимания работы ОС и прочих прослоек, над которыми работает код. Но это не так. Владение кросс-платформенным языком подразумевает хотя-бы общие знания о работе всех этих прослоек, ОС и платформ. Иначе так и придётся оставаться джуниором до пенсии.

blexey ★★★★★
()
Последнее исправление: blexey (всего исправлений: 1)

Просто пропиши путь к JDK, а не к JRE в файле запуска IDEA (idea-IC/bin/idea.sh).

Мой пример:

#!/bin/sh
#
# ---------------------------------------------------------------------
# IntelliJ IDEA startup script.
# ---------------------------------------------------------------------
#
IDEA_JDK=/usr/local/openjdk8

message()
{
  TITLE="Cannot start IntelliJ IDEA"
  if [ -t 1 ]; then
    echo "ERROR: $TITLE\n$1"
  elif [ -n `which zenity` ]; then
    zenity --error --title="$TITLE" --text="$1"
  elif [ -n `which kdialog` ]; then
    kdial.......

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Просто пропиши путь к JDK, а не к JRE в файле запуска IDEA (idea-IC/bin/idea.sh).

Рубрика вредные советы от Изи. Все правильно ему про JAVA_HOME писали.

f1xmAn ★★★★★
()
Ответ на: комментарий от f1xmAn

Только тут могут быть проблемы с тем, что ~/.bash_profile может не читаться при запуске Idea из меню DM-а, придётся её запускать из консоли. А совет iZEN-а будет работать 100%.

Legioner ★★★★★
()
Ответ на: комментарий от Deleted

Выхлоп консоли демонстрационного класса:

package floresiris.mavenproject1234;

public class NewClass {

    public static void main(String[] args) {
        System.out.println("Привет, Мир!");
        int i = 10546;
        int j = Math.round(2234.342f);
        System.out.println("Первое число: " + i);
        System.out.println("Второе число: " + j);
        System.out.println("Сумма: " + (i + j));
    }
}
запущенного из среды:
> ps -ax | grep java
/usr/local/openjdk8/bin/java -Didea.launcher.port=7533 -Didea.launcher.bin.path=/usr/home/igor/bin/idea-IC/bin -Dfile.encoding=UTF-8 -classpath /usr/local/openjdk8/jre/lib/resources.jar:/usr/local/openjdk8/jre/lib/jce.jar:/usr/local/openjdk8/jre/lib/jsse.jar:/usr/local/openjdk8/jre/lib/javazic.jar:/usr/local/openjdk8/jre/lib/rt.jar:/usr/local/openjdk8/jre/lib/management-agent.jar:/usr/local/openjdk8/jre/lib/compilefontconfig.jar:/usr/local/openjdk8/jre/lib/charsets.jar:/usr/local/openjdk8/jre/lib/ext/zipfs.jar:/usr/local/openjdk8/jre/lib/ext/sunjce_provider.jar:/usr/local/openjdk8/jre/lib/ext/dnsns.jar:/usr/local/openjdk8/jre/lib/ext/sunpkcs11.jar:/usr/local/openjdk8/jre/lib/ext/localedata.jar:/usr/local/openjdk8/jre/lib/ext/cldrdata.jar:/usr/local/openjdk8/jre/lib/ext/nashorn.jar:/usr/local/openjdk8/jre/lib/ext/sunec.jar:/home/igor/projects/mavenproject1234/target/classes:/usr/home/igor/bin/idea-IC/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain floresiris.mavenproject1234.NewClass
Привет, Мир!
Первое число: 10546
Второе число: 2234
Сумма: 12780

Ну и стандартное:

> ps -ax | grep java
21681  -  S      2:49,22 /usr/local/openjdk8/bin/java -Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=225m -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djsse.enableSNIExtension=false -XX:+UseConcMarkSweepGC -XX:S
21695  -  I      0:05,30 /usr/local/openjdk8/jre/bin/java -Djava.awt.headless=true -Didea.version==14.0.3 -Xmx512m -Dfile.encoding=UTF-8 -classpath /usr/home/igor/bin/idea-IC/lib/resources_en.jar:/usr/home/igor/bin/idea-IC/lib/oromatcher.jar:/usr/home
21721  -  S      0:03,02 /usr/local/openjdk8/bin/java -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs="" -Djdt.compiler.useSingleThread=true -Dpreload.project.path=/home/igor/projects/mavenproject1234 -Dpreload.config.path=/home/igor/.IdeaIC14/
21740  0  S+     0:00,00 grep java

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 5)
Ответ на: комментарий от iZEN

Забыл указать версии:

IDEA CE 14.0.3 (сборка 139.1117) и OpenJDK8-8.31.13:

> /usr/local/openjdk8/bin/java -version
openjdk version "1.8.0_31"
OpenJDK Runtime Environment (build 1.8.0_31-b13)
OpenJDK 64-Bit Server VM (build 25.31-b07, mixed mode)

iZEN ★★★★★
()

При установке Intellij IDEA она выдает ошибку

Очень жаль,что в последнее время всё чаще падают банальные вопросы, причём, котоыре не могут быть воспроизведены в нормальных условиях. Как вы умудряетесь пропускать СТОЛЬКО занятий в школе?

ii8_ ★★★★
()
Ответ на: комментарий от f1xmAn

Меню Desktop Environment-а (KDE, Gnome или что стоит). Я помню, были проблемы с тем, что в этих программах не читался .bash_profile, лечилось установкой переменных окружения в /etc/environment, но это вроде в Ubuntu так было, в других дистрибутивах может быть по-другому.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

В DE эта переменная не читалась ровно до тех пор, пока ~/.bashrc не будет заново прочитан, т.е. до перезагрузки/перелогина. Но нужно понимать, что export JAVA_HOME это универсальное решение, в то время как изменение скрипта запуска идеи будет работать только для идеи.

P.S. обратил внимание, что у моего юзера JAVA_HOME вообще нету. Oracle JDK 8 стоит из PPA. Как идея узнала путь к JDK?

f1xmAn ★★★★★
()
Ответ на: комментарий от no-such-file

Я его установил. Помогло то, что советовал iZEN

OkLets
() автор топика
Ответ на: комментарий от f1xmAn

В DE эта переменная не читалась ровно до тех пор, пока ~/.bashrc не будет заново прочитан, т.е. до перезагрузки/перелогина.

Это если у тебя DE запускается с помощью bash. Если запускается с помощью GDM, например, ему баш не нужен и переменная не будет прочитана.

Но нужно понимать, что export JAVA_HOME это универсальное решение, в то время как изменение скрипта запуска идеи будет работать только для идеи.

Согласен.

P.S. обратил внимание, что у моего юзера JAVA_HOME вообще нету. Oracle JDK 8 стоит из PPA. Как идея узнала путь к JDK?

Либо прочитала симлинк из /usr/bin/java, либо перебирает стандартные места для установки. Проблема того, что у юзера не стоит JAVA_HOME, достаточно распространена и популярный софт пытается сам найти установленную Java.

Legioner ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Зато он знает жабу и где кнопка включения процессора... ;)

И получает в 3 раза больше того, что знает, что это системный блок.

sT331h0rs3 ★★★★★
()
Ответ на: комментарий от sT331h0rs3

И получает в 3 раза больше того, что знает, что это системный блок.

Цифры в студию.

I-Love-Microsoft ★★★★★
()

IDEA-юзеры, как вы решаете вопрос ШГ под онтопиком? Ставите патченные JDK? Я сколько не извращался, не смог получить нативный вид системного ubuntu mono...

rand
()
Ответ на: комментарий от Legioner

Да, я в свое время думал над этим тоже, пришел к тем же выводам. Как вариант еще - смотреть, что там в alternatives.

anonymous
()
Ответ на: комментарий от rand

IDEA-юзеры, как вы решаете вопрос ШГ под онтопиком?

Последний раз, когда запускал идею в бубунте, все было хорошо.

ovk48 ★★★
()
Ответ на: комментарий от iZEN

Зависит от приложения. Вот стартовый скрипт Maven'а определяет местоположение бинаря java для запуска строго через JAVA_HOME, просто наличие в PATH его не устраивает. А старт-скрипт WildFly использует PATH, но при старте выводит совет установить JAVA_HOME, на всякий случай.

Вообще, это проблема конфигурирования кросс-платформенного софта. Вот например, угадайте, какое значение Maven выставляет для ${user.home} по умолчанию на винде? %USERPROFILE%? Неа. Каталог, родительский по отношению к каталогу Desktop (каталог для содержимого рабочего стола)! А его можно и переместить — и вот тогда ловишь офигенный сюрприз от того, что локальный кэш оказывается в совсем неожиданном месте.

Или вот ещё: Git на всё той же винде ищет конфиг в %HOMEDRIVE%\%HOMEPATH%, если эти переменные выставлены, а не в %USERPROFILE%. А эти переменные, бывает, выставляются в корпоративной среде для винды, если пользователям выделены личные «домашние» сетевые диски. Тоже тот ещё коленкор.

Ну а с прокси вообще полная чехарда, каждая софтина ищет параметры доступа где в голову взбредёт. Кто-то читает переменную окружения http_proxy, кто-то использует настройки IE, кто-то читает из собственного конфига, кто-то не умеет аутентифицироваться, а кто-то вообще о прокси не слышал.

anonymous
()
Ответ на: комментарий от f1xmAn

Правильный совет, особенно удобно когда разные версии java используешь.
Да правда я использую одну для всего, и это восьмая openjdk.

IDEA-юзеры, как вы решаете вопрос ШГ под онтопиком?

-Dswing.aatext=true
-Dawt.useSystemAAFontSettings=gasp
anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

Запускаешь идею в последней, в настройках проекта выбираешь любую другую. Менеджатся версии джавы через alternatives. Если реально есть приложение, которое нужно запускать строго на конкретной протухшей версии, указываешь JAVA_HOME специально для него.

f1xmAn ★★★★★
()
Ответ на: комментарий от f1xmAn

Да я тоже про это знаю. Но если бы мне нужно было указать, я бы указал в idea.sh, ибо так для меня удобней. Через настройки idea удобно переключать версию java для проекта.

anonymous_sama ★★★★★
()
Ответ на: комментарий от iZEN

В JAVA_HOME нет необходимости в современных версиях JDK.

вообще-то JAVA_HOME никогда не был нужен для JDK/JRE, он был (и остается) нужен для приложений, которые использовали эту переменную чтобы найти JDK/JRE

maloi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.