Einstellen von JAVA_HOME & CLASSPATH in CentOS 6

Ich habe mein JDK in / usr / java / entpackt.

und ich habe CLASSPATH, PATH, JAVA_HOME wie unten beschrieben in / etc / profile abgelegt.

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 in einem anderen Ordner mache, tut es das nicht.

Es zeigt NoClassDefFoundError an.

Also habe ich CLASSPATH, PATH, JAVA_HOME per Echo überprüft.

Es zeigt wie unten.

[root@localhost a]# echo $JAVA_HOME
/usr/java/jdk1.7.0_21
[root@localhost 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
[root@localhost 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 ichsource /etc/profile.

================= Die Fehler, denen ich gegenüberstehe =====================

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

Error: Could not find or load main class A

In diesem Fall befehle ich 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)

==================== Vollständiger Inhalt meines Codes ======================== ============== Java-Teil. Der Pfad lautet /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 part. 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 eine symbolische Verbindung.Mein jdk-Speicherort ist /usr/java/jdk1.7.0_21. Innerhalb von ./bin funktioniert jeder Code einwandfrei.Ich habe /root/.bash_profile nicht berührt. Ich habe gerade / etc / profile bearbeitet.

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

Antworten auf die Frage(6)

Ihre Antwort auf die Frage