Babu said:
Knute Johnson wrote:
Babu Kalakrishnan wrote:
Knute Johnson wrote:
Oliver Wong wrote:
Babu Kalakrishnan wrote:
The commandline for the above example in that case would be :
java -classpath /xyz/abc MyPackage.MyClass
That doesn't work for me although I have seen reference to it before
like that. Could it be that it doesn't work on Windows like that?
It works for me on WinXP SP2:
java -cp "D:\Oliver's Documents\Workspace\Test\bin" D
to run a class called "D" with no package whose classfile is in
"D:\Oliver's Documents\Workspace\Test\bin"
- Oliver
That does for me too. But put it in a package and it won't.
Interesting - Seems to work for me even with classes within a package -
Running TCPServer.class in package test :
java -classpath "C;\Documents and
Settings\Babu\workspace\TestServer\classes" test.TCPServer
Main: Listening for connections on port 2345
Testing on XP Home SP2
BK
package test;
public class Test {
public static void main(String[] args) {
System.out.println("It works!");
}
}
C:\>javac test/Test.java
I'd assume that you now have Test.java and Test.class inside C:\test.
C:\>java test.Test
It works!
OK - here the default classpath assumed by the JVM is "." (which is
"C:\"), so it works
C:\>cd test
C:\test>java -cp "C:\test" test.Test
Exception in thread "main" java.lang.NoClassDefFoundError: test/Test
Your commandline here should be :
java -cp "C:\" test.Test
because the classpath is to be set to the root of the package hierarchy
- which is C:\ in your case.
With the commandline you used, the class file is expected to be
C:\test\test\Test.class
BK
Thank you so much guys, this has confused the s**t out of me for years.
I think the most confusing part is the root business.
So now that you solved that one, show me how to use a jar library on the
command line when I run a java program. I can make it compile but I
can't make it run. I can get it to work if I put the jar file in the
Class-Path: line in the manifest and put the jar file in the same
directory as the program jar file but not from the command line.