Foro sobre Java SE > Ejecutar JAR
Ejecútalo el jar desde el terminar, en caso de haber error allí te lo mostrará.
Compartenos que te muestra el terminal.
Casi apostaría a que es un problema con los recursos de la aplicación.
Pero, como bien dice resalpa, no es posible adivinar la causa de los problemas. Es imprescindible saber qué excepciones se lanzan, como mínimo.
Al compilarlo me da 1 warning: "warning: [options] bootstrap class path not set in conjunction with -source 1.6"
Al ejecutarlo, antes no me salia nada (que es lo que mas me extrañaba) pero hoy si me ha salido un error: "A Java Exception has ocurred."
En primer lugar tendrías que asegurarte que estás ejecutando ese jar a través de la maquina virtual. Además si utilizas recursos adicionales (otros jars,...) tendrás que añadirlos al path de ejecución de la maquina virtual. De todos modos, para que puedas saber que está ocurriendo tienes que encontrar la traza de error y ver que te indica allí.
Un saludo
Decías que al ejecutarlo desde NetBeans funcionaba bien, y que al ejecutarlo como aplicación de escritorio no funcionaba.
¿Cuál es esa excepción que te lanza?. Haz como te indicaba resalpa, y ejecútalo desde la consola del Sistema Operativo, para que veas la excepción completa.
@programarenjava
Si está desarrollando la aplicación con NetBeans, todos esos detalles sobre classpath ya los resuelve el builder de NetBeans.
Lo he desarrollado en Netbeans, lo he probado desde la consola y me lanza ese error "A Java Exception has ocurred", He usado una libreria externa, el jDom para manejar xml, no se si tendrá algo que ver. Lo de añadir el jar al path de ejecución de la maquina virtual no se hacerlo (ya dije que estoy empezando) y lo de encontrar la traza del error como lo hago?
Para ejecutar desde la consola, por internet he encontrado varias maneras, las he probado y ninguna va, si me comentais la buena me haceis un favor.
Ya he hecho alguna aplicacion anterior y funcionaba bien, aunque sin jars externos.
Mira una manera de ejecutar desde la consola, en este caso, de Windows:
D:\Docs\NetBeansProjects\Aplicacion\dist>java -jar aplicacion.jar
Se supone que al hacer un build en NetBeans, te ha creado una carpeta dist, donde estará el jar de tu aplicación, y una carpeta lib, donde estarán las librerías externas.
Los classpath estarán en el archivo manifest, dentro del jar de tu aplicación. No tienes que preocuparte de eso, porque NetBeans lo crea por ti.
Si hay una excepción, debes poder verla en la consola.
Por lo que cuentas, es muy posible que tu problema se deba, como te han comentado, a que NetBeans no empaqueta las librerías directamente en el jar de la aplicación. Puedes seguir estos pasos para que lo haga.
http://tecno-aspirinas.blogspot.com.es/2010/07/incluir-librerias-en-el-jar-con.html
NetBeans no lo hace porque no es necesario. Las librerías externas se distribuyen en la carpeta lib de dist, y los classpath están en el archivo manifest del jar de la aplicación.
Lo único que no se sabe de este problema, hasta el momento, es qué excepciones se lanzan cuando se ejecuta la aplicación directamente desde el Sistema Operativo, porque, como ha comentado, cuando la ejecuta desde el harness de NetBeans no hay problema.
He ejecutador el JAR desde la cónsola, y me lanza estas excepciones:
C:\dist>java -jar App.jar
Fichero no valido
java.io.FileNotFoundException: C:\dist\src\fichero.xml (El sistema no puede enc
ontrar la ruta especificada)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(Unknown Source)
at java.io.FileInputStream.(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown So
urce)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrent
Entity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineD
ocVersion(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U
nknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U
nknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown So
urce)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Un
known Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.p
arse(Unknown Source)
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:217)
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:277)
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:264)
at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1116)
at App.aho.(ahorcado.java:45)
at Appt.aho$31.run(ahorcado.java:1244)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at App.aho.(ahorcado.java:54)
at App.aho$31.run(ahorcado.java:1244)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Puede ser que no encuentre el xml? No empaqueta los src en el JAR? O es mas complicado?
¿Que tienes en esta línea 45 de tu código?
App.aho.(ahorcado.java:45)
Perdon...
C:\dist>java -jar App.jarFichero no validojava.io.FileNotFoundException: C:\dist\src\fichero.xml (El sistema no puede encontrar la ruta especificada)at java.io.FileInputStream.open(Native Method)at java.io.FileInputStream.(Unknown Source)at java.io.FileInputStream.(Unknown Source)at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(Unknown Source)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:217)at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:277)at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:264)at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1116)at App.aho.(ahorcado.java:45)at Appt.aho$31.run(ahorcado.java:1244)at java.awt.event.InvocationEvent.dispatch(Unknown Source)at java.awt.EventQueue.dispatchEventImpl(Unknown Source)at java.awt.EventQueue.access$200(Unknown Source)at java.awt.EventQueue$3.run(Unknown Source)at java.awt.EventQueue$3.run(Unknown Source)at java.security.AccessController.doPrivileged(Native Method)at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)at java.awt.EventQueue.dispatchEvent(Unknown Source)at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)at java.awt.EventDispatchThread.pumpEvents(Unknown Source)at java.awt.EventDispatchThread.pumpEvents(Unknown Source)at java.awt.EventDispatchThread.run(Unknown Source)Exception in thread "AWT-EventQueue-0" java.lang.NullPointerExceptionat App.aho.(ahorcado.java:54)at App.aho$31.run(aho.java:1244)at java.awt.event.InvocationEvent.dispatch(Unknown Source)at java.awt.EventQueue.dispatchEventImpl(Unknown Source)at java.awt.EventQueue.access$200(Unknown Source)at java.awt.EventQueue$3.run(Unknown Source)at java.awt.EventQueue$3.run(Unknown Source)at java.security.AccessController.doPrivileged(Native Method)at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)at java.awt.EventQueue.dispatchEvent(Unknown Source)at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)at java.awt.EventDispatchThread.pumpEvents(Unknown Source)at java.awt.EventDispatchThread.pumpEvents(Unknown Source)at java.awt.EventDispatchThread.run(Unknown Source)
App.aho.(aho.java:45)
Son asi, los habia renombrado para hacerlo mas entendible...
Te lanza esta excepción:
Fichero no validojava.io.FileNotFoundException: C:\dist\src\fichero.xml (El sistema no puede encontrar la ruta especificada)
que procede de la línea 45 del archivo ahorcado.java de tu aplicación.
at App.aho.(ahorcado.java:45)at Appt.aho$31.run(ahorcado.java:1244)
¿Cuál es el contenido de esas líneas?
Porque lo que la excepción está diciendo es que no puede encontrar ese archivo, porque hay un error que procede de esas líneas.
Hola,
Soy nuevo en esto del java, y necesito ayuda, la verdad es que de estos foros he solucionado algunos problemas, por eso pregunto aqui. Mi problema es que he compilado un JAR y desde el Netbeans me funciona correctamente, pero al ejecutarlo fuera del IDE no hace absoluntamente nada. Espero ideas.
Gracias.