I am writing a basic TCP chat program and one of the requirements is that it can be run from the command line with the following argument formats:
java Server 8888
java Client localhost 8888
Which will start a server listening on 8888 and which waits to accept incoming connections from clients. Then start a client and connect to the server at localhost:8888. These classes can both be compiled and run from within Eclipse and I have added the above variables to the run configurations for the classes, respectively.
If I navigate to the directory of the files in CMD I can see the compiled .class files, but when I try to run the server with:
java Server 8888
I get the error
Error: Could not find or load main class Server
Eclipse>Window>Preferences>Java>Compiler shows JDK 1.7.
Running java -version from the command line shows
java version "1.7.0_02"
Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
Java HotSpot(TM) 64-Bit Server VM (build 22.0-b10, mixed mode)
I want to be able to run both the classes from separate prompts in parallel. Any ideas?
You need to specify the fully qualified class name (including the package name)
Reason:
The class full name (known as fully qualified name) is not
Server, it isbasicChat.Server. The file is located under a directory namedbasicChat. So java is looking for a a directory structure matching the package name.The Server.class file is located under the basicChat directory in the file system.
Else consider how we would have a problem to select the intended class if you had several classes called
Serverin different packages (name spaces).