Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could not find or load main class with a Jar File

Tags:

java

main

class

jar

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?

like image 361
Austin Avatar asked Oct 23 '12 12:10

Austin


People also ask

How do you set the main class in a running jar?

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.

What does could not find or load main class mean?

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.


2 Answers

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 
like image 107
BeRecursive Avatar answered Oct 06 '22 00:10

BeRecursive


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

like image 29
mGeek Avatar answered Oct 05 '22 23:10

mGeek