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.