Beginner Problem - Manifest file

W

William Colls

Environment:
Ubuntu 10.04.2 64 bit
Java 1.6.0_24
NetbeansIDE 6.8

I have built a small application containing two classes. When I build
the application in the IDE, it builds without error, and creates a .jar
file.

When I try to run the .jar using the command

java -jar myapp.jar

I get the error

Failed to load Main-Class manifest attribute from myapp.jar

One of the class files does contain the main declaration

public static void main(String args)

From my reading, I understand that there should be a file with the name
manifest.txt in the build directory that gets incorporated into the .jar
file, but I don't know what the contents of the file should be. My
original understanding of how the IDE worked led me to believe that it
would create the manifest file automatically, but this doesn't seem to
be happening.

Any guidance would be greatly appreciated.

Thanks for your time.
 
K

Knute Johnson

Environment:
Ubuntu 10.04.2 64 bit
Java 1.6.0_24
NetbeansIDE 6.8

I have built a small application containing two classes. When I build
the application in the IDE, it builds without error, and creates a .jar
file.

When I try to run the .jar using the command

java -jar myapp.jar

I get the error

Failed to load Main-Class manifest attribute from myapp.jar

One of the class files does contain the main declaration

public static void main(String args)

From my reading, I understand that there should be a file with the name
manifest.txt in the build directory that gets incorporated into the .jar
file, but I don't know what the contents of the file should be. My
original understanding of how the IDE worked led me to believe that it
would create the manifest file automatically, but this doesn't seem to
be happening.

Any guidance would be greatly appreciated.

Thanks for your time.

It can be any name, doesn't matter. The line you want is;

Main-Class: mypackage.MyClass

From the docs on jar;

# attribute defined for stand-alone applications
# This attribute is used by stand-alone applications that are bundled
into executable jar files which can be invoked by the java runtime
directly by running "java -jar x.jar".

* Main-Class :
*

The value of this attribute defines the relative path of the main
application class which the launcher will load at startup time. The
value must not have the .class extension appended to the class name.
 
M

markspace

One of the class files does contain the main declaration

public static void main(String args)


Also, this should be an array of strings:

public static void main( String[] args )

or

public static void main( String... args )
 
J

John B. Matthews

William Colls said:
Environment:
Ubuntu 10.04.2 64 bit
Java 1.6.0_24
NetbeansIDE 6.8

I have built a small application containing two classes. When I build
the application in the IDE, it builds without error, and creates a
.jar file.

When I try to run the .jar using the command

java -jar myapp.jar

I get the error

Failed to load Main-Class manifest attribute from myapp.jar

One of the class files does contain the main declaration

public static void main(String args)

From my reading, I understand that there should be a file with the
name manifest.txt in the build directory that gets incorporated into
the .jar file, but I don't know what the contents of the file should
be. My original understanding of how the IDE worked led me to believe
that it would create the manifest file automatically, but this
doesn't seem to be happening.

Here's a simple utility that displays a manifest's contents in place:

<http://sites.google.com/site/drjohnbmatthews/manifesto>

The included build.xml file shows how to create the manifest using ant.
From the command line, use `ant -p` to see the available build targets;
use `ant test` to see a test run.
 
W

William Colls

One of the class files does contain the main declaration

public static void main(String args)


Also, this should be an array of strings:

public static void main( String[] args )

or

public static void main( String... args )

Typo. the actual file does define an array.
 
N

Nigel Wade

Environment:
Ubuntu 10.04.2 64 bit
Java 1.6.0_24
NetbeansIDE 6.8

I have built a small application containing two classes. When I build
the application in the IDE, it builds without error, and creates a .jar
file.

When I try to run the .jar using the command

java -jar myapp.jar

I get the error

Failed to load Main-Class manifest attribute from myapp.jar

One of the class files does contain the main declaration

public static void main(String args)

From my reading, I understand that there should be a file with the name
manifest.txt in the build directory that gets incorporated into the .jar
file, but I don't know what the contents of the file should be. My
original understanding of how the IDE worked led me to believe that it
would create the manifest file automatically, but this doesn't seem to
be happening.

Any guidance would be greatly appreciated.

Thanks for your time.

You shouldn't need to worry about manifest files in NetBeans - provided
you create the correct type of project. If you create a project of type
"Java Application", and in the next dialog box check "Create Main
class", NetBeans will do everything for you. It will create the main
class and the manifest, and since it knows which is the main class it
will add that information to the manifest.

What type of project did you create? It's not always possible to modify
the project type after the fact, the attributes of some project types
are not suitable. You may be able to do it by creating your main class
(a class with a main method), then editing the project properties. In
the Run category set the Main Class attribute to your main class. If
that doesn't work, and you want NetBeans to manage the project for you
by creating properly runnable jar files, the simplest way may well be to
create a new project of the correct type. Then move your existing Java
files into that project, using NetBeans to move/refactor the classes.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,153
Members
46,701
Latest member
XavierQ83

Latest Threads

Top