Error: Could not find or load main class TestEnum | Java
/**
* @author Shashank Shekhar
* @version 1.0
* This program test enum under if condition
*/
package Chapter3;
public class TestEnum
{
enum Season {spring, summer, fall, winter};
public static void main(String[] args)
{
Season W1 = Season.summer;
if(W1.equals(Season.winter))
{
System.out.println("Well....Weather is Winter...");
}
else
{
System.out.println("Well....Weather is Not Winter...");
}
}
}
Generally what happen when we compile a normal java program without any package (or namespace in C#) is that ".class" is generated in place where ".Java" files is placed.
So, executing below command will generate TestEnum.class in folder where TestEnum.java is located.
D:\Temp\javac TestEnum.java
But problem starts once you have put or create any namespace/package in ".java" file.
So executing below command results in given error even if everything is correct.
D:\Temp\java Chapter3.TestEnum
Error: Could not find or load main class TestEnum
Work around :
Found many articles talking about similar problem but with different solutions of trying classpath which did not work for this problem. There is twist while compiling a file manually on command line, especially those having package name specified on the top of program. Just include -d option with . which denotes current directory, and java compiler creates a dedicated folder as per the name of package provided in the class.
D:\Temp\javac -d . TestEnum.java
Please note that -d option does have impact only when there is any package name exclusively specified over the top of class, otherwise, it will also have same behavior as if -d option were not present while compiling.
Comments