Malditos JAR y Manifest :_(
Buenas, llevo toda la mañana buscando por internet y no encuentro nada. El problema:
Creo una aplicación que usa Record Stores usando el Java SUN Studio, compilo, ejecuto con Wireless Toolkit 2.0 como emulador y funciona. ¡Pero a la hora de crear el JAR no hay manera!
Si intento ejecutar cualquier JAR haciendo doble click: "Failed to load Main-Class manifest attribute", aunque el programa sea un triste HolaMundo que funciona con KToolBar
Ahora, cojo mi programa, Build, Package, todo bien. Le doy a ejecutar:
Unable to create MIDlet Preventa
java.lang.ClassNotFoundException: Preventa
at com.sun.midp.midlet.MIDletState.createMIDlet(+14)
at com.sun.midp.midlet.Selector.run(+22)
Preventa es el único archivo .java y por supuesto el único .class
¿Alguien tiene idea de qué hago mal? T_T
Creo una aplicación que usa Record Stores usando el Java SUN Studio, compilo, ejecuto con Wireless Toolkit 2.0 como emulador y funciona. ¡Pero a la hora de crear el JAR no hay manera!
Si intento ejecutar cualquier JAR haciendo doble click: "Failed to load Main-Class manifest attribute", aunque el programa sea un triste HolaMundo que funciona con KToolBar
Ahora, cojo mi programa, Build, Package, todo bien. Le doy a ejecutar:
Unable to create MIDlet Preventa
java.lang.ClassNotFoundException: Preventa
at com.sun.midp.midlet.MIDletState.createMIDlet(+14)
at com.sun.midp.midlet.Selector.run(+22)
Preventa es el único archivo .java y por supuesto el único .class
¿Alguien tiene idea de qué hago mal? T_T
Vale, se ejecutan dando doble click al archivo .jad. Pero mi programa sigue sin ir. ¿Puede tener relación con los Record Stores, que probablmente no están dentro del .jar?
Pon aqui tu manifiesto y tu clase que deriva de Midlet para echarle un vistazo, porque puede que no hayas puesto bien el nombre de tu clase principal en Midlet Class Name.
Si ejecutas un JAR se va a ejecutar un programa de escritorio, no un midlet, y va a ir a buscar el nombre de la clase principal a la etiqueta Main-Class. Aunque no se para que quieres ejecutar un midlet en un PC asi, te vale lo mismo probandolo desde un emulador.
Si ejecutas un JAR se va a ejecutar un programa de escritorio, no un midlet, y va a ir a buscar el nombre de la clase principal a la etiqueta Main-Class. Aunque no se para que quieres ejecutar un midlet en un PC asi, te vale lo mismo probandolo desde un emulador.
package Preventa;
import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.rms.*;
import javax.microedition.lcdui.*;
public class Preventa extends MIDlet implements CommandListener{
declaración de variables
public Preventa(){
iniciación de variables, construcción de objetos List, Form..
Es la única clase que hay, el resto son métodos.
MANIFEST:
MIDlet-1: Preventa, Preventa.png, Preventa
MIDlet-Name: Preventa
MIDlet-Vendor: Sun Microsystems
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
JAD:
MIDlet-1: Preventa, Preventa.png, Preventa
MIDlet-Jar-Size: 3592 <-- me parece que es demasiado pequeño para incluir los RS
MIDlet-Jar-URL: Preventa.jar
MIDlet-Name: Preventa
MIDlet-Vendor: Sun Microsystems
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.rms.*;
import javax.microedition.lcdui.*;
public class Preventa extends MIDlet implements CommandListener{
declaración de variables
public Preventa(){
iniciación de variables, construcción de objetos List, Form..
Es la única clase que hay, el resto son métodos.
MANIFEST:
MIDlet-1: Preventa, Preventa.png, Preventa
MIDlet-Name: Preventa
MIDlet-Vendor: Sun Microsystems
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
JAD:
MIDlet-1: Preventa, Preventa.png, Preventa
MIDlet-Jar-Size: 3592 <-- me parece que es demasiado pequeño para incluir los RS
MIDlet-Jar-URL: Preventa.jar
MIDlet-Name: Preventa
MIDlet-Vendor: Sun Microsystems
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
