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