ho scompattato il mio JDK in/usr/java /.impostando JAVA_HOME & CLASSPATH in CentOS 6
e ho messo CLASSPATH, PATH, JAVA_HOME in/etc/profile come qui di seguito.
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
E quando compilo qualche file java in /usr/java/jdk1.0.7_21/bin,
funziona. Ma quando sto facendo la stessa cosa su un'altra cartella, non è così.
Esso mostra NoClassDefFoundError.
così ho controllato classpath, PATH, JAVA_HOME via eco.
Essa mostra come qui di seguito.
[[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
Voglio usare java in console, cosa posso fare questa situazione?
Grazie in anticipo.
PS. di couse che ho fatto source /etc/profile
.
================= gli errori quello che sto affrontando con ===================== ==
quando io comando java A (Il mio nome classe è A).
Error: Could not find or load main class A
caso io comando java -cp/home/guest/lavoro/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)
================ ===== pieno contenuto del mio codice ====================================== java parte. percorso è /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 parte. parte sinistra è l'impostazione predefinita.
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
altre parti potrebbero essere utili per risolvere.
which java
stampe "/ usr/java/bin". c'è un collegamento simbolico.- La mia posizione è jdk /usr/java/jdk1.7.0_21. all'interno di ./bin ogni codice funziona correttamente.
- Non ho toccato /root/.bash_profile. Ho appena modificato/etc/profile.
Grazie per tale interesse. anche se non ha capito. il tuo aiuto è stato di grande guarigione per me: D Grazie ancora.
Sono state prese delle java -version e javac - versione dalla console ?? – prasanth
@prasanth Sì, funziona bene e mostra il messaggio corretto. Attualmente sto usando 1.7.0_19. grazie per aver chiesto –
Puoi pubblicare la traccia dello stack completo di errore? – prasanth