First off,
you should remove the jdk bin directory from your classpath. If there are any classes in there that you need to run the JDK, they should be relocated to a more appropriate place (my guess is there aren't any there anyway).
The problem you're having is that the JVM is not able to find the compiled class file for BasicsDemo. When you run the JVM, the only thing it knows about is the rt.jar that comes as part of the JDK (that has all the base classes in it, like java.lang.Object and java.lang.String, etc). Everything else it looks into the classpath variable to locate. So, your classpath variable should be "." assuming you always want it to look in the current directory for classes to run.
There is another issue here, and that is one of packages. If you placed your class in the so-called "default package" by omitting a package statement, then you're fine running the java interpreter from the same directory that the class file is located in. Here's an example:
Save this as Foo.java. On my (Windows) machine, I put everything in D:\Users\sever\projects\src, so in the rest of this post assume that's my working directory.
D:\...\src> javac Foo.java
<successful compilation>
D:\...\src> java Foo
foo!
This assumes that my CLASSPATH variable is set to ".". If it was empty, I'd have to type:
D:\...\src> java -classpath . Foo
Now let's say I write a class that I put in some package:
Now, the rules of java dictate that I not only store as a file named Bar.java, but also that the *compiled class file* goes in a directory structure that reflects the packaging. To make clear exactly where to put things, I'm going to be explicit to run it a couple of times from different places:
D:\...\src> javac Bar.java
<success>
D:\...\src> move Bar.class .\example\javaranch
<success>
D:\...\src> java -classpath . example.javaranch.Bar
bar!
See how that works? I could not invoke the interpreter with simply "Bar" anymore, I had to use the package name. Furthermore, the class file had to be put in the example\javaranch location for the interpreter to find it, in addition to the root of the src subtree being added to the classpath. To make this clear, let me execute bar (now in D:\Users\sever\projects\src\example\javaranch) from a different place on disk:
D:\...\src> C:
C:\> java -classpath D:/Users/sever/projects/src example.javaranch.Bar
bar!
Note that I used forward slashes in the classpath argument. This is because Java is OS agnostic, and likes forward slashes to separate directories no matter what platform you're running on. Another thing to add to the pile.
Anyway, hope I cleared some things up for you.
sev