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?
We'll use the -cp option (short for classpath) to specify the JAR file that contains the class file we want to execute: java -cp jar-file-name main-class-name [args …] As we can see, in this case, we'll have to include the main class name in the command line, followed by arguments.
When you get the message "Could not find or load main class ...", that means that the first step has failed. The java command was not able to find the class. And indeed, the "..." in the message will be the fully qualified class name that java is looking for.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With