it-swarm.com.de

setzen von Java_HOME und CLASSPATH in CentOS 6

Ich habe mein jdk in/usr/Java/entpackt.

und ich füge CLASSPATH, PATH, Java_HOME wie folgt in/etc/profile ein.

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

Und wenn ich eine Java-Datei in /usr/Java/jdk1.0.7_21/bin kompiliere, 

es klappt. Aber wenn ich dasselbe für andere Ordner mache, ist dies nicht der Fall.

Es zeigt NoClassDefFoundError an.

Also habe ich ClASSPATH, PATH, Java_HOME per Echo geprüft.

Es zeigt wie unten.

[[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

Ich möchte Java in der Konsole verwenden. Was kann ich in dieser Situation tun?

Danke im Voraus.

PS. Natürlich habe ich source /etc/profile.

======================================================================================================================================================================================= =

wenn ich Java A befehle (Mein Klassenname ist A).

Error: Could not find or load main class A

wenn ich Java -cp/home/guest/workspace/AAA/src/a/A befehle

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)

======================= Der gesamte Inhalt meines Codes ========================= ===============.... Java-Teil. Pfad ist /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/Profilteil. Der linke Teil ist voreingestellt.

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

andere Teile könnten hilfreich sein, um sie zu lösen.

  • which Java druckt "/ usr/Java/bin". Es gibt einen symbolischen Link.
  • Mein jdk-Speicherort ist /usr/Java/jdk1.7.0_21. Innerhalb von ./bin funktioniert jeder Code gut.
  • Ich habe /root/.bash_profile nicht berührt. Ich habe gerade/etc/profile bearbeitet.

Danke für dieses Interesse. obwohl es nicht herausgefunden hat. Ihre Hilfe war für mich eine große Heilung: D Nochmals vielen Dank.

23
Juneyoung Oh

Ich habe einen Ordner mit dem Namen a in/home/prasanth erstellt und den Code in eine Datei namens A.Java kopiert. Ich habe aus/home/prasanth als javac a/A.Java kompiliert und javac a.A ausgeführt. Ich habe ausgegeben als 

a!
3
prasanth

hier nach Centos jre installieren alle Benutzer:

Der einfachste Weg, eine Umgebungsvariable in CentOS festzulegen, ist der Export wie in.

$> export Java_HOME=/usr/Java/jdk.1.5.0_12

$> export PATH=$PATH:$Java_HOME

Variablen, die auf diese Weise festgelegt werden, sind jedoch vorübergehend, d. Offensichtlich ist dies nicht hilfreich, wenn Umgebungsvariablen festgelegt werden, die auch beim Neustart des Systems beibehalten werden müssen .. In solchen Fällen müssen Sie die Variablen innerhalb des systemweiten Profils festlegen. In CentOS (ich verwende Version 5.2) ist der Ordner /etc/profile.d/ der empfohlene Ort, um Anpassungen zum Systemprofil hinzuzufügen .. _ Wenn Sie beispielsweise Sun JDK installieren, müssen Sie möglicherweise Folgendes festlegen die Umgebungsvariablen Java_HOME und JRE_HOME. In diesem Fall: Erstellen Sie eine neue Datei mit dem NamenJava.sh.

vim /etc/profile.d/Java.sh

Initialisieren Sie in dieser Datei die erforderlichen Umgebungsvariablen.

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

Wenn Sie jetzt Ihren Computer neu starten, werden die Umgebungsvariablen in Java.sh automatisch initialisiert (checkout/etc/profile, wenn Sie wissen möchten, wie die Dateien in /etc/profile.d/ geladen werden).

PS: Wenn Sie die Umgebungsvariablen in Java.sh laden möchten, ohne die Maschine neu starten zu müssen, können Sie den Quellbefehl wie folgt verwenden:

$> source Java.sh
34
asraful009

Anleitung:

  1. Klicken Sie im Desktopbereich auf das Symbol Terminal, um ein Terminalfenster zu öffnen und auf die Eingabeaufforderung zuzugreifen.
  2. Geben Sie den Befehl which Java ein, um den Pfad zur Java-ausführbaren Datei zu finden.
  3. Geben Sie den Befehl su - ein, um Root-Benutzer zu werden.
  4. Geben Sie den Befehl vi /root/.bash_profile ein, um die bash_profile -Datei des Systems im Vi-Texteditor zu öffnen. Sie können vi durch Ihren bevorzugten Texteditor ersetzen.
  5. Geben Sie export Java_HOME=/usr/local/Java/ am Ende der Datei ..__ ein. Ersetzen Sie /usr/local/Java durch den in Schritt zwei gefundenen Speicherort.
  6. Speichern und schließen Sie die Datei bash_profile.
  7. Geben Sie den Befehl exit ein, um die Stammsitzung zu schließen.
  8. Melden Sie sich vom System ab und wieder an.
  9. Geben Sie den Befehl echo $Java_HOME ein, um sicherzustellen, dass der Pfad korrekt festgelegt wurde

setze Java_home in Centos

6
bonecrusher

Es scheint, dass Sie keine Probleme mit den Umgebungsvariablen haben. 

Kompilieren Sie Ihre Datei von src mit 

javac a/A.Java

Führen Sie dann Ihr Programm als aus 

Java a.A

1
prasanth

Die Bereitstellung von javac erfolgt über /etc/alternatives/javac können Sie Ihrem .bash_profil hinzufügen:

Java_HOME=$(l=$(which javac) ; while : ; do nl=$(readlink ${l}) ; [ "$nl" ] || break ; l=$nl ; done ; echo $(cd $(dirname $l)/.. ; pwd) )
export Java_HOME
0
alxdrl

Ich musste /etc/profile.d/Java_env.sh ändern, um auf den neuen Pfad zu zeigen, und mich dann abmelden/einloggen.

0
BruceG

Führen Sie die folgenden Schritte aus:

  1. Sudo -s
  2. yum installiere Java-1.8.0-openjdk-devel
  3. vi .bash_profile... und fügen Sie die folgende Zeile in die Datei .bash_profile ein und speichern Sie die Datei.

export Java_HOME =/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64 /

Hinweis - Ich verwende CentOS7 als OS.

0
Indrajeet Gour