views:

821

answers:

4

I have the following problem. I have a Java project in my NetBeans IDE 6.8. When I compile it and it produces a .jar file containing everything possible, the META-INF is not right. It doesn't contain the class to be executed - with main() method.

When I click the Run button inside the IDE, everything works. The settings of the project are also set the right way - pointing to a class in my project.

I tried adding a folder META-INF with manifest file but I didn't manage.

Is there a way to do this manually in NetBeans, because I found that if I add the missing Main class in the manifest, everything works.

(I suppose I hit some sort of bug...)

//edit: The result I'm after is that I want the jar that is created with the build of NetBeans to be executable with command:

Quote from Sun Documentation :

When the Main-Class is set in the manifest file, you can run the application from the command line: java -jar app.jar

A: 

It is simple.

  • Right click on the project
  • Go to Properties
  • Go to Run in Categories tree
  • Set the Main Class in the right side panel.
  • Build the project

Thats it. Hope this helps.

RaviG
this doesn't help - I've described it in the question
Leni Kirilov
Sorry for my post. Missed your line in your question.
RaviG
+1  A: 

It looks like you are running into a bug in the way NetBeans 6.8 creates the jar for a Java Library Project.

The issue implies that there is a work-around.

I have not been able to verify that with NB 6.8 and/or NetBeans 6.9-dev...

You may want to register with the NetBeans.org website/issue tracker and update the issue and add your 'vote'.

vkraemer
A: 

Adding manifest.file=manifest.mf into project.properties and creating manifest.mf file in the project directory works fine in NB 6.9 and should work also in NB 6.8.

Tomas Zezula
+1  A: 

I'm going to make a summary of the proposed solutions and the one that helped me!

After reading this bug report: bug in the way NetBeans 6.8 creates the jar for a Java Library Project.

  1. Create a manifest.mf file in my project root

  2. Edit manifest.mf. Mine looked something like this:

    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.7.1
    Created-By: 16.3-b01 (Sun Microsystems Inc.)
    Main-Class: com.example.MainClass
    Class-Path: lib/lib1.jar lib/lib2.jar
    
  3. Open file /nbproject/project.properties

  4. Add line

    manifest.file=manifest.mf

  5. Clean + Build of project

Now the .jar is successfully build.

Thank you very much vkraemer

Leni Kirilov