Could not find or load main class with a Jar File
I'm trying to load a jar using
@echo off
java -jar Test.jar
pause
With the manifest of
Manifest-Version: 1.0
Main-Class: classes.TestClass
In the Jar directory, I can clearly see a classes\TestClass file when I extract it.
Edit: classes.TestClass
does have a public static void main(String[] args)
.
Package Deceleration in classes.TestClass
is package classes;
But I still keep getting the error message
Could not find or load main class classes.TestClass
I've been through everything I've been able to find with this problem, and none of it seems to help.
I've tried editing the classpath, redoing the manifest, installing the new JRE.
What else should I be doing?
I got it working like this:
TestClass.Java
package classes;
public class TestClass {
public static void main(String[] args) {
System.out.println("Test");
}
}
Use javac
on the command line to produce TestClass.class
. Put TestClass.class
in a folder classes/
.
MANIFEST.MF
Manifest-Version: 1.0
Main-Class: classes.TestClass
Then run
jar cfm test.jar MANIFEST.MF classes/
Then run it as
java -jar test.jar
This error comes even if you miss "-" by mistake before the word jar
Wrong command
java jar test.jar
Correct command
java -jar test.jar
java -cp "full-path-of-your-jar" Main
to run any other class having "public static void main" in some package,
java -cp "full-path-of-your-jar" package1.package2.packages-hierarchy.ClassHavingMain
1.Create a text file calles Manifest.txt and provide the value as
Main-Class: classes.TestClass
2.Create the jar as
jar cfm test.jar Manifest.txt classes/*.class
3.Run the jar as
java -jar test.jar