Knute Johnson wrote:
Babu Kalakrishnan wrote:
Knute Johnson wrote:
Oliver Wong wrote:
"Knute Johnson" <nospam@rabbitbrush.frazmtn.com> wrote in message
news:qe%Ig.2$bR.0@newsfe06.phx...
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
...
package test;
public class Test {
public static void main(String[] args) {
System.out.println("It works!");
}
}
C:\>javac test/Test.java
C:\>java test.Test
It works!
C:\>cd test
C:\test>java -cp "C:\test" test.Test
Exception in thread "main" java.lang.NoClassDefFoundError: test/Test
Here you need to add the 'test' package to the classpath,
as opposed to ..anything it contains.
So on my system -
C:\test>java -cp .. test.Test
It works!
___
Note that in your original post, there was a *slight* wording
mistake (AFAIU). I did not point it out at the time, since I
felt the OP had enough to mull over, but since I've jumped
into this thread..
Initially you said that a test.Test dould be run from the
'parent directory'.. OK that *is* correct, but I feel it would
have been better to say that it could be run from the
'root of the package structure'.
In your example, of course, they *are* the same place.
BUT.. if you consider the class test.junit.Test,
the latter advice is correct, while the 'parent' directory
of the test.junit.Test class is also a package, rather
than the 'root' and will not work (in the same way).
Andrew T.
Thanks very much. Please see my response to Babu (and you).