Ejecuta en IDE pero no en mi PC

DTH
08 de Marzo del 2005
Tengo Eclipse, Hice un programa muy pequeño que se conecta una BD obtiene un dato y me lo muestra en un campo de texto, cuandole doy "Run" en eclipse corre perfecto pero cuando exporto el proyecto a un archivo .jar ese archivo .jar no me corre, y lo que es peor aún es que ese archivo hace poco corría bién, cuando lo corro en la consola de windows, me aparece "Exception in thread "main" java.lang.NoClassDefFoundError: prueba", que puede ser???

1 Archivo.
basededatos.java
---------------------------------------------
import java.sql.*;

public class basededatos {
private String name = "";
private Connection conn = null;
private String sql = "";

/** Creates a new instance of basededatos */
public basededatos( String host, String user, String password, String BasedeDatos ) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch ( Exception ex ){
System.out.print("No se cargó Driver - MySQLn");
}
}
public boolean connect (){
try{
conn = DriverManager.getConnection("jdbc:mysql://localhost/mos1", "root" , "");
} catch ( Exception ex ){
System.out.print("No se ha Conectado a la BDn" + conn.toString() + "n");
return false;
}
return true;
}
public ResultSet query( String sql ){
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
} catch ( Exception ex ) {
System.out.print("No se ha creado el Statement ()n");
}
try {
rs = stmt.executeQuery( sql );
} catch ( Exception ex ) {
System.out.print("No se ha ejecutado el Query ()n");
}
try {
if (stmt.execute( sql )) {
rs = stmt.getResultSet();
}
} catch ( Exception ex ){
System.out.print("Error al obtener el resultadon");
}
if (rs != null) {
if (stmt != null) {
stmt = null;
}
}
return rs;
}
}
---------------------------------------------

2 Archivo
prueba.java
---------------------------------------------
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

public class prueba {
public static void main(String[] args) {
JFrame frame = new JFrame("HolaMundoSwing");
frame.getContentPane().setLayout(new BorderLayout());

final JTextArea areatexto = new JTextArea();
areatexto.setEditable(true);
frame.getContentPane().add( areatexto, BorderLayout.CENTER );

basededatos db = new basededatos ( "localhost", "root", "", "mos1" );
boolean conecto = db.connect();
if(!conecto){
areatexto.setText( areatexto.getText() + "No se conectó" );
} else {
areatexto.setText( areatexto.getText() + "Sí se conectó" );
}
ResultSet rs = db.query( "SELECT * FROM mos_users" );
String texto = null;
try{
rs.next();
areatexto.setText( areatexto.getText() + "nSi funcionó el rs.next()" );
} catch ( Exception ex ) {
areatexto.setText( areatexto.getText() + "nNo funcionó el rs.next()n" + ex.toString() );
}

try{
texto = rs.getString("name");
areatexto.setText(texto);
areatexto.setText( areatexto.getText() + "nSi funcionó el rs.getString()" );
} catch ( Exception ex ) {
areatexto.setText( areatexto.getText() + "nNo funcionó el rs.getString()" );
}

frame.addWindowListener(new java.awt.event.WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);

frame.pack();
frame.setLocation( 0, 0 );
frame.setVisible(true);
frame.setSize( 500,500 );
}
}
---------------------------------------------

ikisman
08 de Marzo del 2005
no te falta el constructor de la clase donde recide el main????

DTH
08 de Marzo del 2005
Efectivamente me hacía falta el constructor pero se lo puse y sigue sin correrme el programa.

yo estoy corriendo el .jar haciendole doble click y simplemente lee un ratico pero no hace nada, entonces me voy a la consola y me hago en la carpeta en la que está el .jar y le doy "java prueba" y me aparece el error (Exception in thread "main" java.lang.NoClassDefFoundError: prueba).

Que puede ser???
El 90% de lass veces que hago algo en JAVA obtengo ese error, en algunos casos estoy haciendo algo y funciona bién despues al otro día hago un cambio pequeño en una linea y exporto y de nuevo obtengo el error, y no puedo correr mis programas.

MiPC es:
Windows 2000 Profesional
CLASSPATH = C:j2sdk1.4.2_07
Uso Elipse 3.0.1

Cuando le doy "Run" en eclipse el programa corre bién, solo deja de correr cuando exporto el .jar.

dibu
08 de Marzo del 2005
Puede ser que te falte en el .jar la carpeta META-INF que contiene el manifest.mf

sal00m
08 de Marzo del 2005
te dice que no encuentra el conector???? es que a mi me paso algo parecido... debes ponerle en el classpath del jar que use el conector.

Si no sabes como es solo dimelo... que yo tuve el problema hace poco y al final si que pude resolverlo