Foros del Web » Programación para mayores de 30 ;) » Java »

Problema al generar ejecutable.jar

Estas en el tema de Problema al generar ejecutable.jar en el foro de Java en Foros del Web. Hola, tengo una aplicación hecha en JDK 1.4 y funciona al ejecutarla como aplicación, el problema viene cuando qiero hacer un ejecutable externo,el error que ...
  #1 (permalink)  
Antiguo 20/09/2005, 02:52
Avatar de yesik  
Fecha de Ingreso: octubre-2004
Ubicación: Orense
Mensajes: 292
Antigüedad: 19 años, 6 meses
Puntos: 1
Problema al generar ejecutable.jar

Hola, tengo una aplicación hecha en JDK 1.4 y funciona al ejecutarla como aplicación, el problema viene cuando qiero hacer un ejecutable externo,el error que aparece es:

java.lang.NoClassDefFoundError: org/jdom/output/XMLOutputter

at patricia.interfaz.<init>(interfaz.java:14)

at patricia.interfaz.main(interfaz.java:38)

Cuando tengo el import realizado (import org.jdom.output.XMLOutputter;
) y en modo aplicación funciona perfectamente....


Alguien sabe que deo hacer?
__________________
Inmuebles de Galicia:: www.inmueblevirtual.net
Compartir piso Galicia:: www.inmueblevirtual.net/foro
  #2 (permalink)  
Antiguo 21/09/2005, 01:42
Avatar de yesik  
Fecha de Ingreso: octubre-2004
Ubicación: Orense
Mensajes: 292
Antigüedad: 19 años, 6 meses
Puntos: 1
Voy a dar mas datos aber si asi me ayudan: tengo dos clases:

CLASE MARCO
package patricia;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import java.io.*;
import org.jdom.*;
import org.jdom.output.XMLOutputter;
import java.io.FileOutputStream;
import javax.swing.border.*;


public class Marco1 extends JFrame {
JPanel contentPane;
JTextField jTextField1 = new JTextField();
XYLayout xYLayout1 = new XYLayout();
JLabel Nombre = new JLabel();
JTextField jTextField2 = new JTextField();
JButton jButton1 = new JButton();
JLabel jLabel3 = new JLabel();
TitledBorder titledBorder1;
TitledBorder titledBorder2;
JLabel jLabel4 = new JLabel();
JLabel jLabel6 = new JLabel();
JTextField jTextField3 = new JTextField();
JTextField jTextField4 = new JTextField();
JLabel jLabel7 = new JLabel();
JLabel jLabel1 = new JLabel();
JTabbedPane jTabbedPane1 = new JTabbedPane();
JTextField jTextField5 = new JTextField();
JLabel jLabel2 = new JLabel();
JLabel jLabel5 = new JLabel();
JTabbedPane jTabbedPane2 = new JTabbedPane();
JLabel jLabel8 = new JLabel();

//Construir el marco
public Marco1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}

//Inicialización de componentes
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
titledBorder1 = new TitledBorder("");
titledBorder2 = new TitledBorder("");
jTextField1.addActionListener(new Marco1_jTextField1_actionAdapter(this));
contentPane.setLayout(xYLayout1);
this.getContentPane().setBackground(SystemColor.co ntrolLtHighlight);
this.setSize(new Dimension(738, 435));
this.setTitle("GENERADOR XML");
Nombre.setFont(new java.awt.Font("Garamond", 1, 13));
Nombre.setText("NOMBRE");
jButton1.setFont(new java.awt.Font("Impact", 0, 11));
jButton1.setToolTipText("");
jButton1.setText("GUARDAR COMBATE");
jButton1.addActionListener(new Marco1_jButton1_actionAdapter(this));
jTextField2.setFont(new java.awt.Font("Impact", 0, 13));
jTextField2.setNextFocusableComponent(jTextField3) ;
jTextField2.setRequestFocusEnabled(true);
jTextField2.setText("");
jTextField2.addActionListener(new Marco1_jTextField2_actionAdapter(this));
jLabel3.setFont(new java.awt.Font("Impact", 1, 40));
jLabel3.setForeground(new Color(0, 0, 20));
jLabel3.setRequestFocusEnabled(true);
jLabel3.setToolTipText("");
jLabel3.setText("COMBATE DE BOXEO");
contentPane.setBackground(UIManager.getColor("Prog ressBar.selectionForeground"));
contentPane.setAlignmentY((float) 0.5);
contentPane.setBorder(titledBorder2);
contentPane.setMinimumSize(new Dimension(800, 600));
contentPane.setOpaque(true);
contentPane.setPreferredSize(new Dimension(348, 269));
contentPane.setToolTipText("");
jLabel4.setFont(new java.awt.Font("Garamond", 1, 13));
jLabel4.setToolTipText("");
jLabel4.setText("NOMBRE");
jLabel6.setFont(new java.awt.Font("Garamond", 1, 13));
jLabel6.setToolTipText("");
jLabel6.setText("APODO");
jLabel7.setFont(new java.awt.Font("Impact", 1, 18));
jLabel7.setOpaque(false);
jLabel7.setToolTipText("");
jLabel7.setText("PÚGIL 1");
jTextField4.setFont(new java.awt.Font("Impact", 0, 13));
jTextField4.setNextFocusableComponent(jButton1);
jTextField4.setText("");
jTextField3.setFont(new java.awt.Font("Impact", 0, 13));
jTextField3.setNextFocusableComponent(jTextField4) ;
jTextField3.setText("");
jTextField3.addActionListener(new Marco1_jTextField3_actionAdapter(this));
jLabel1.setFont(new java.awt.Font("Garamond", 1, 13));
jLabel1.setText("APODO");
jTextField5.setBackground(UIManager.getColor("Inte rnalFrame.activeTitleGradient"));
jTextField5.setFont(new java.awt.Font("Impact", 2, 14));
jTextField5.setNextFocusableComponent(jTextField1) ;
jTextField5.setSelectedTextColor(UIManager.getColo r("InternalFrame.activeTitleGradient"));
jTextField5.setSelectionStart(1);
jTextField5.setText("");
jLabel2.setFont(new java.awt.Font("Impact", 1, 24));
jLabel2.setVerifyInputWhenFocusTarget(true);
jLabel2.setText("TITULO EN JUEGO");
jLabel5.setFont(new java.awt.Font("Impact", 1, 34));
jLabel5.setText("Vs");
jLabel8.setFont(new java.awt.Font("Impact", 1, 18));
jLabel8.setText("PÚGIL 2");
jTextField1.setFont(new java.awt.Font("Impact", 0, 13));
jTextField1.setNextFocusableComponent(jTextField2) ;
contentPane.add(jLabel2, new XYConstraints(22, 130, 172, 21));
contentPane.add(jTextField5, new XYConstraints(205, 128, 373, 26));
contentPane.add(jTextField3, new XYConstraints(497, 235, 193, -1));
contentPane.add(jLabel4, new XYConstraints(403, 239, 103, 18));
contentPane.add(jTextField4, new XYConstraints(499, 280, 201, -1));
contentPane.add(jLabel6, new XYConstraints(399, 282, 66, -1));
contentPane.add(jTabbedPane2, new XYConstraints(373, 172, 339, 156));
}

//Modificado para poder salir cuando se cierra la ventana
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}


void jTextField1_actionPerformed(ActionEvent e) {

}
public void generar() {


Element root=new Element("BOXEO").setText("BOXEO");
Element titulo=new Element("titulo").setText(jTextField5.getText());
root.addContent(titulo);
//Creamos un hijo para el root
Element jugador1 =new Element("Ficha_Boxeador1");
Element titulo1=new Element("FICHA1").setText("Ficha_Personal1");
jugador1.addContent(new Element("nombre").setText(jTextField1.getText()));
jugador1.addContent(new Element("apodo").setText(jTextField2.getText()));
root.addContent(jugador1);
Element versus =new Element("Versus").setText("Vs");
root.addContent(versus);
Element jugador2 =new Element("Ficha_Boxeador2");
Element titulo2=new Element("FICHA2").setText("Ficha_Personal2");
jugador2.addContent(new Element("nombre").setText(jTextField3.getText()));
jugador2.addContent(new Element("apodo").setText(jTextField4.getText()));
root.addContent(jugador2);

Document doc=new Document(root);//Creamos el documento

//Vamos a almacenarlo en un fichero
try{
XMLOutputter out=new XMLOutputter("",true);
FileOutputStream file=new FileOutputStream("ejemplo.xml");
out.output(doc,file);
file.flush();
file.close();
//out.output(doc,System.out);
}catch(Exception e){e.printStackTrace();}
}

void jButton1_actionPerformed(ActionEvent e) {
generar();
}

void jTextField2_actionPerformed(ActionEvent e) {

}

void jTextField3_actionPerformed(ActionEvent e) {

}
}

class Marco1_jTextField1_actionAdapter implements java.awt.event.ActionListener {
Marco1 adaptee;


Marco1_jTextField1_actionAdapter(Marco1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jTextField1_actionPerformed(e);
}
}

class Marco1_jButton1_actionAdapter implements java.awt.event.ActionListener {
Marco1 adaptee;

Marco1_jButton1_actionAdapter(Marco1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}

class Marco1_jTextField2_actionAdapter implements java.awt.event.ActionListener {
Marco1 adaptee;

Marco1_jTextField2_actionAdapter(Marco1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jTextField2_actionPerformed(e);
}
}

class Marco1_jTextField3_actionAdapter implements java.awt.event.ActionListener {
Marco1 adaptee;

Marco1_jTextField3_actionAdapter(Marco1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jTextField3_actionPerformed(e);
}

}



CLASE INTERFAZ:

package patricia;
import org.jdom.output.XMLOutputter;
import patricia.Marco1;
import java.awt.*;
import javax.swing.*;

public class interfaz extends JFrame {
//boolean packFrame = false;


//Construir la aplicación
public interfaz() {

Marco1 pantalla = new Marco1();
//Validar marcos que tienen tamaños preestablecidos
//Empaquetar marcos que cuentan con información de tamaño preferente útil. Ej. de su diseño.
//Centrar la ventana
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = pantalla.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
pantalla.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
pantalla.setVisible(true);
}

//Método Main
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAn dFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
new interfaz();
}
}


El error me da al llamar a new interfaz();


Xfa ayuda¡¡¡¡
__________________
Inmuebles de Galicia:: www.inmueblevirtual.net
Compartir piso Galicia:: www.inmueblevirtual.net/foro
  #3 (permalink)  
Antiguo 21/09/2005, 17:31
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 3 meses
Puntos: 1
Hola, pues es probable que las librerias necesarias si las tengas agegadas en tu CLASSPATH al momento de compilar, pero no al momento de ejeuctar tu jar.

Puede deberse también a que este ejecutando tu jar con una versión diferente del JDK a la que has compilado.
__________________
Saludos,

H@C..
  #4 (permalink)  
Antiguo 22/09/2005, 01:47
Avatar de yesik  
Fecha de Ingreso: octubre-2004
Ubicación: Orense
Mensajes: 292
Antigüedad: 19 años, 6 meses
Puntos: 1
Efectivamente, despues de innumerables pruebas y de descomprimir eljar descubrí que la llibrería que agregaba el compilador era distinta a la que se agregaba en el jar... gracias
__________________
Inmuebles de Galicia:: www.inmueblevirtual.net
Compartir piso Galicia:: www.inmueblevirtual.net/foro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:21.