HI; Your instructions to bring up the classpath at my command prompt did not work. I used this instead: echo %PATH% echo %CLASSPATH% This worked for my system?
Respects, JKid314159 http://groups.google.com/group/existentialist-reading-circle?hl=en --- On Thu, 7/30/09, DaveB <[email protected]> wrote: From: DaveB <[email protected]> Subject: [java programming] Re: Classpath does not work as expected To: "Free Java Programming Online Training Course By Sang Shin" <[email protected]> Date: Thursday, July 30, 2009, 8:44 AM All: Due to help from BlackRookSix and Pacior, the mystery of CLASSPATH is resolved. I hope that this will help others. If there is ANY value in your CLASSPATH variable, you CANNOT use Set CLASSPATH=[new directorypath] by itself. BlackRookSix suggested using echo %CLASSPATH% to obtain the current value. During the installation of the jdk, you probably had to modify your CLASSPATH variable, so it will contain some value. The echo command will show it to you. To correctly modify this variable, use Set CLASSPATH=%CLASSPATH%;[new directorypath] (Note: the ";" is for Windows users). In the example I provided earlier, the complete command is Set CLASSPATH=%CLASSPATH %;c:\tmp Now do the command echo %CLASSPATH% and the new directory path has been appended to the CLASSPATH variable and everything works as expected. Also, pacior suggested enclosing in quotes. What I have found is that you only need quotes when there is a literal space in the directory listing. So for the Windows users, if you were to add something like C:\Documents and Settings\Dave\My Documents, you would have to format it as C:\"Documents and Settings"\Dave\"My Documents" and everything again will work. Thanks to all for pointing in the right direction! DaveB On Jul 29, 6:56 pm, pacior <[email protected]> wrote: > "4. I set the CLASSPATH (C:\tmp>set CLASSPATH = c:\tmp) then change > to the parent directory which does not contain the class file." > It fails, beacuse of white spaces. > try: > set CLASSPATH="c:\tmp" > > Pacior > > On Jul 29, 9:39 pm, David Banish <[email protected]> wrote: > > > All: > > I am in Lesson 3, Packages and Java Classpath. > > I thought I got the Classpath, but now I am not so sure. > > > In the Command Line Stream below, I have the Hello.class in 2 > > directories(...MyJava and C:\tmp). > > 1. The first command (C:\Documents > > and Settings\Dave>java Hello) is expected to fail because the class is not > > in the current directory. > > 2. I change directories to one that contains the class file and execute > > again (C:\Documents > > and Settings\Dave\My Documents\MyJava>java Hello) successfully because the > > class is located in that current directory. > > 3. I change directories again to the second directory that contains a copy > > of the class file and successfully execute (C:\tmp>java > > Hello) > > 4. I set the CLASSPATH (C:\tmp>set > > CLASSPATH = c:\tmp) then change to the parent directory which does not > > contain the class file. > > 5. At this point, I would expect the class file to execute because of the > > CLASSPATH being set, but it does not > > > C:\>java > > HelloException in thread "main" > > java.lang.NoClassDefFoundError: Hello > > 6. I display the classpath which seems correct > > > C:\>set > > classpath > > CLASSPATH=.;C:\Program > > Files\Java\jre6\lib\ext\QTJava.zipCLASSPATH > > = c:\tmp > > 7. But, if I use the -classpath option in the java line, it works as > > expected (C:\>java > > -classpath c:\tmp Hello) > > > So > > can anyone help me as to why the Classpath does not seem to work as > > expected? I did notice that my "set Classpath" statement created a > > second line with classpath listed twice. Is that it? > > > ------ > > > C:\Documents > > and Settings\Dave>java Hello > > Exception in thread "main" > > java.lang.NoClassDefFoundError: Hello > > Caused by: java.lang.ClassNotFoundException: > > Hello > > at java.net.URLClassLoader$1.run(URLClassLoader.java:200) > > at java.security.AccessController.doPrivileged(Native Method) > > at > > java.net.URLClassLoader.findClass(URLClassLoader.java:188) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:307) > > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:252) > > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) > > Could not find the main class: Hello. Program will exit. > > > C:\Documents and Settings\Dave>cd My > > Documents\MyJava > > > C:\Documents > > and Settings\Dave\My Documents\MyJava>java Hello > > Hello world > > > C:\Documents and Settings\Dave\My > > Documents\MyJava>cd c:\tmp > > > C:\tmp>java > > Hello > > Hello world > > > C:\tmp>set > > CLASSPATH = c:\tmp > > > C:\tmp>cd c:\ > > > C:\>java > > Hello > > Exception in thread "main" > > java.lang.NoClassDefFoundError: Hello > > Caused by: java.lang.ClassNotFoundException: > > Hello > > at java.net.URLClassLoader$1.run(URLClassLoader.java:200) > > at java.security.AccessController.doPrivileged(Native Method) > > at java.net.URLClassLoader.findClass(URLClassLoader.java:188) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:307) > > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) > > at java.lang.ClassLoader.loadClass(ClassLoader.java:252) > > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) > > Could not find the main class: Hello. Program will exit. > > > C:\>set > > classpath > > CLASSPATH=.;C:\Program > > Files\Java\jre6\lib\ext\QTJava.zip > > CLASSPATH > > = c:\tmp > > > C:\>java > > -classpath c:\tmp Hello > > Hello world > > > Thx to all, > > DaveB > > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/javaprogrammingwithpassion?hl=en -~----------~----~----~----~------~----~------~--~---
