Подтвердить что ты не робот

Настройка JAVA_HOME & CLASSPATH в CentOS 6

Я распаковал свой jdk в /usr/java/.

и я помещаю CLASSPATH, PATH, JAVA_HOME в /etc/profile, как показано ниже.

export JAVA_HOME=/usr/java/jdk1.7.0_21
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

И когда я компилирую некоторый java файл в /usr/java/jdk 1.0.7_21/bin,

он работает. Но когда я делаю то же самое в другой папке, это не так.

Он отображает NoClassDefFoundError.

Итак, я проверил CLASSPATH, PATH, JAVA_HOME через эхо.

Он отображается, как показано ниже.

[[email protected] a]# echo $JAVA_HOME
/usr/java/jdk1.7.0_21
[[email protected] a]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/guest/bin:/usr/java/jdk1.7.0_21/bin:/usr/java/bin:/usr/java/jdk1.7.0_21/bin
[[email protected] a]# echo $CLASSPATH
/usr/java/jdk1.7.0_21/jre/lib/ext:/usr/java/jdk1.7.0_21/lib/tools.jar

Я хочу использовать java в консоли, что я могу сделать в этой ситуации?

Спасибо заранее.

PS. я сделал source /etc/profile.

================= Ошибки, с которыми я сталкиваюсь ====================== =

когда я команду java A (Мое имя класса A).

Error: Could not find or load main class A

case я command java -cp/home/guest/workspace/AAA/src/a/A

Exception in thread "main" java.lang.NoClassDefFoundError: A (wrong name: a/A)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

====================== Весь контент моего кода ===================== ================= java часть. путь -/usr/guest/workspace/AAA/src/a/A.java

package a;

public class A {
    public static void main(String[] args) {
        System.out.println("a!\n");
    }
}

/etc/profile. левая часть по умолчанию.

export JAVA_HOME=/usr/java/jdk1.7.0_21
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

другие части могут быть полезны для решения.

  • which java печатает "/usr/java/bin". там символическая ссылка.
  • Место моего jdk -/usr/java/jdk1.7.0_21. внутри. /bin каждый код работает нормально.
  • Я не касался /root/.bash_profile. Я только что редактировал /etc/profile.

Спасибо за такой интерес. даже если это не выяснено. ваша помощь была для меня отличным исцелением: D Еще раз спасибо.

4b9b3361

Ответ 1

Я создал папку с именем a в /home/prasanth и скопировал ваш код в файл с именем A.java. Я собрал /home/prasanth как javac a/A.java и запустил javac a.A. Я получил результат как

a!

Ответ 2

Найти здесь для centos jre установить всех пользователей:

Самый простой способ установить переменную среды в CentOS - использовать экспорт, как в

$> export JAVA_HOME=/usr/java/jdk.1.5.0_12

$> export PATH=$PATH:$JAVA_HOME

Однако переменные, установленные таким образом, являются переходными, т.е. они исчезнут в момент выхода из оболочки. Очевидно, что это не помогает при настройке переменных среды, которые необходимо сохранить, даже когда система перезагружается. В таких случаях вам необходимо установить переменные в пределах профиля системы. В CentOS (Im, использующем v5.2), папка/etc/profile.d/является рекомендуемым местом для добавления настроек в системный профиль. Например, при установке Sun JDK вам может потребоваться установить переменные среды JAVA_HOME и JRE_HOME. В этом случае: Создайте новый файл с именем java.sh

vim /etc/profile.d/java.sh

Внутри этого файла инициализируйте необходимые переменные среды

export JRE_HOME=/usr/java/jdk1.5.0_12/jre
export PATH=$PATH:$JRE_HOME/bin

export JAVA_HOME=/usr/java/jdk1.5.0_12
export JAVA_PATH=$JAVA_HOME

export PATH=$PATH:$JAVA_HOME/bin

Теперь при перезагрузке компьютера переменные среды в java.sh будут автоматически инициализированы (checkout/etc/profile, если вам интересно, как загружаются файлы в файле /etc/profile.d/).

PS: Если вы хотите загрузить переменные среды в java.sh без перезагрузки машины, вы можете использовать команду источника, как в:

$> source java.sh

Ответ 3

Инструкции:

  1. Нажмите на значок " Терминал" на панели рабочего стола, чтобы открыть окно терминала и получить доступ к командной строке.
  2. Введите команду which java чтобы найти путь к исполняемому файлу Java.
  3. Введите команду su - чтобы стать пользователем root.
  4. Введите команду vi/root/.bash_profile чтобы открыть системный файл bash_profile в текстовом редакторе Vi. Вы можете заменить vi предпочитаемым текстовым редактором.
  5. Введите export JAVA_HOME=/usr/local/java/ в нижней части файла. Замените /usr/local/java расположением, найденным на втором шаге.
  6. Сохраните и закройте файл bash_profile.
  7. Введите команду exit чтобы закрыть корневой сеанс.
  8. Выйдите из системы и войдите снова.
  9. Введите команду echo $JAVA_HOME чтобы убедиться, что путь был задан правильно.

установить java_home в сентос

Ответ 4

Кажется, что у вас нет проблем с переменными окружающей среды.

Скомпилируйте файл из src с помощью

javac a/A.java

Затем запустите свою программу как

java a.A

Ответ 5

Мне пришлось изменить /etc/profile.d/java_env.sh, чтобы указать на новый путь, а затем выйти/войти.

Ответ 6

Сделайте следующие шаги:

  1. судо -s
  2. yum установить java-1.8.0-openjdk-devel
  3. vi.bash_profile, добавьте строку ниже в файл .bash_profile и сохраните файл.

экспорт JAVA_HOME =/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/

Примечание. Я использую CentOS7 в качестве ОС.