Reason:
1. The java command by default searches for the address of the class file in the directory specified in the CLASSPATH environment variable.
2. We ignore the impact of package.
Solution process:
The first problem is easy to solve:
We can directly add ".;" to the CLASSPATH environment variable. "." means to search the current directory.
For the second question, please see the analysis below:
Look at the following two categories
The only difference between category A and category B is that there is no Define the package name.
Our project path is D:\HelloWorld. Create a src folder in the HelloWorld folder. The source code file of class B is placed in src. After compiling with javac,
will generate NewsManager.class in the src folder, as follows:
Execute as follows:
Change the source code to class A:
Why is it wrong after adding the package?
The path of the package in class A is org.will.app.main. According to Java regulations, we should store source files according to the path defined by the package. Class A should be placed under:
src\org\will\app\main, as follows:
Then we compile and execute:
There is still a problem, why, in fact, if you go back and look at the java books, you will find that the full name of a class It should be the package name and class name. Full name of class A: org.will.app.main.NewsManager
Okay, try again:
Still wrong. Why?
Look at the picture above carefully. We let the java command execute org.will.app.main.NewsManager in the main directory. In fact, it will think that the class path is:
D:\ HelloWorld\src\org\will\app\main\org\will\app\main\NewsManager, as you can see, the paths are repeated.
So, we should execute it like this:
Success!
Recommended tutorial:Java tutorial
The above is the detailed content of When running the java program, it prompts that the main class cannot be found or cannot be loaded.. For more information, please follow other related articles on the PHP Chinese website!