.jar

Andreina
06 de Junio del 2006
Porfa, necesito que alguien me diga como crear un .jar. Estoy utilizando esta sentencia

jar cf forma.jar *.class

y me lanza failed to load Main-Class

La aplicacion la hice en netbeans pero aun con los contenedores jar que el crea me lanza error al correr el .jar.

tambien probe haciendo yo misma el manifest

Main-Class: forma
Name: forma.class

y me lanza que no puede localizar el main

el netbeans crea 7 archivos
forma$1.class
forma$2.class
forma$3.class
forma$4.class
forma.class
forma.form
forma.java

Las 4 primeros no se de donde salen y el codigo del que hice es

/*
* forma.java
*
* Created on 3 de septiembre de 2005, 01:58 PM
*/

package forma;
import java.lang.*;
import java.lang.Exception;
public class forma extends javax.swing.JFrame {
public static void main(String args[]) {
new forma().show();
}

/** Creates new form forma */
public forma() {
initComponents();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {
flowLayout1 = new java.awt.FlowLayout();
jPanel1 = new javax.swing.JPanel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jTextField3 = new javax.swing.JTextField();
jPanel2 = new javax.swing.JPanel();
label1 = new java.awt.Label();
label2 = new java.awt.Label();
label3 = new java.awt.Label();

getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

setTitle("Primer programa");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});

jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});

getContentPane().add(jTextField1, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 40, 100, 20));

jTextField2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField2ActionPerformed(evt);
}
});

getContentPane().add(jTextField2, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 70, 100, -1));

jButton1.setText("Suma");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(210, 60, -1, -1));

getContentPane().add(jTextField3, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 110, 100, -1));

jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

getContentPane().add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 300, 220));

label1.setText("Operando1");
getContentPane().add(label1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 40, -1, -1));

label2.setText("Operando2");
getContentPane().add(label2, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 70, -1, -1));

label3.setText("Resultado");
getContentPane().add(label3, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 110, -1, -1));

pack();
}

private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try{
String a,b,res2 = new String();
float c,d,res;
a=jTextField1.getText();
c=Float.valueOf(a).floatValue();
b=jTextField2.getText();
d=Float.valueOf(b).floatValue();
res=c+d;
res2=Float.toString(res);
jTextField3.setText(res2);
System.out.println(a);
}
catch(java.lang.Exception e){jTextField3.setText("0");}
}
/** Exit the Application */
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}

/**
* @param args the command line arguments
*/

// Variables declaration - do not modify
private java.awt.FlowLayout flowLayout1;
private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
public javax.swing.JTextField jTextField1;
public javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private java.awt.Label label1;
private java.awt.Label label2;
private java.awt.Label label3;
// End of variables declaration
}

Es una especie de calculadora donde se toman 2 datos por medio de JTextfield y por medio de un boton se suman y muestra el resultado en otro JTextField.

Agradezco a quien me pueda ayudar

xscorpio
06 de Junio del 2006
CUANDO CREAS UN JAR NECESITAS INDICARLE DONDE ENCONTRAR TU CLASE PRINCIPAL, MEDIANTE UN ARCHIVO MANIFIESTO

ASI QUE DEBES ESCRIBIRLO ASI

jar cmf manifest.txt MIARCHIVO.jar *.class

el archivo manifest.txt debe contener esto:

Manifest-Version: VERSION
Created-By: TU NOMBRE
Main-Class: CLASE_PRINCIPAL (sin el .class)


fady
06 de Junio del 2006
en este subforo

http://usuarios.lycos.es/fady/foro/viewforum.php?f=2

hablan del tema, saludos

nemesis
06 de Junio del 2006
hola yo les tengo una mejor para todos los fans de java (trabajo con .Net pero trabajo los dos) de casualidad me toca crear un .jar y esta todo como debe ser con su manifiesto y todo pero al intenta ejecutar me sale ke no encuentra la clase principal y REPITO TODO ESTA COMO DEBE SER pero sale el error pienso yo ke el lio esta en alguna imcompatibilidad de los jre o jdk o lo ke sea si alguien sabe de algo pues .. gracias