Mam rozpakowałem mój jdk w/usr/java /.ustawienie JAVA_HOME & CLASSPATH w CentOS 6
i kładę CLASSPATH, ścieżka, JAVA_HOME w/etc/profile jak poniżej.
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
I kiedy skompilować jakiś plik javy w /usr/java/jdk1.0.7_21/bin,
to działa. Ale kiedy robię to samo w innym folderze, tak nie jest.
Wyświetla NoClassDefFoundError.
Więc mam zaznaczone ścieżki klasy, ścieżka, JAVA_HOME przez echo.
Pokazuje się jak poniżej.
[[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
Chcę używać java w konsoli, Co mogę zrobić, aby ta sytuacja?
Z góry dziękuję.
PS. ze mnie zrobiłem source /etc/profile
.
================= Błędy co mi stoi z ===================== ==
kiedy polecenie java A (Moja nazwa klasy to A).
Error: Could not find or load main class A
przypadek rozkazuję java cp/home/gość/roboczy/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)
================ ===== pełna treść mojego kodu ====================================== java część. Ścieżka jest /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 część. lewa część jest domyślna.
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
inne części mogą być pomocne w rozwiązaniu.
- drukuje "/ usr/java/bin". istnieje link symboliczny.
- Moja lokalizacja jdk to /usr/java/jdk1.7.0_21. wewnątrz ./bin każdy kod działa dobrze.
- Nie dotknąłem /root/.bash_profile. Właśnie edytowałem/etc/profile.
Dzięki takiego zainteresowania. nawet jeśli się nie domyśli. twoja pomoc bardzo mnie uzdrowiła: D Jeszcze raz dziękuję.
Czy można sprawdzić java -version i javac - wersja z konsoli? – prasanth
@prasanth Tak, działa dobrze i pokazuje właściwą wiadomość. Obecnie używam wersji 1.7.0_19. dziękuję za pytanie –
Czy możesz opublikować kompletny ślad stosu twojego błędu? – prasanth