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

Ejecutar un .class con un .bat

Estas en el tema de Ejecutar un .class con un .bat en el foro de Java en Foros del Web. Hola a todos, estoy empezando a programar en java y quisiera saber si hay alguna manera de compilar el .class o en caso de ser ...
  #1 (permalink)  
Antiguo 02/10/2010, 07:30
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años, 1 mes
Puntos: 5
Ejecutar un .class con un .bat

Hola a todos, estoy empezando a programar en java y quisiera saber si hay alguna manera de compilar el .class o en caso de ser uno o los que sean para poder ejecutarlos en windows y que no se abra la consola "cmd". En definitiva, poder ejecutar mis programillas en windows sin depender ni de cmd, ni eclipse ni nada si no de que al ejecutarla se abra y punto.

En el .bat he puesto

@echo off

java archivo.class

Pero me abre cmd.


Muchas gracias un saludo.
  #2 (permalink)  
Antiguo 02/10/2010, 08:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Ejecutar un .class con un .bat

intenta con javaw en vez de java. Está en el directorio bin de donde tienes instalado java.
Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 02/10/2010, 08:48
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Ejecutar un .class con un .bat

Tampoco, le tengo así ahora y nada:

@echo off



javaw CuadroDialogo2

exit

Eso guardado en un .bat que es el que ejecuto pero sigue abriendo la ventana de cmd.
  #4 (permalink)  
Antiguo 03/10/2010, 03:32
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Busqueda Respuesta: Ejecutar un .class con un .bat

Hola,

Posiblemente te sea de alguna ayuda,
http://www.forosdelweb.com/f45/splash-java-738217/

Saludos,
  #5 (permalink)  
Antiguo 03/10/2010, 04:59
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Ejecutar un .class con un .bat

Ok muchas gracias, voy a ver ahora como crear los .jar

Un saludo
  #6 (permalink)  
Antiguo 03/10/2010, 13:07
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Ejecutar un .class con un .bat

Hola NazCarLpa,

Cita:
Iniciado por NazCarLpa Ver Mensaje
Ok muchas gracias, voy a ver ahora como crear los .jar

Un saludo
Olvidé mencionar que javaw.exe es igual a java.exe, con la diferencia que no necesita una ventana de terminar para ejecutarse (cmd). Por lo tanto no necesitas obligatoriamente un archivo .JAR,

"C:\Archivos de programa\Java\jre6\bin\javaw.exe" "C:\PathTo\CuadroDialogo2"

java & javaw
Saludos,
  #7 (permalink)  
Antiguo 03/10/2010, 14:14
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Ejecutar un .class con un .bat

Hago todo como me dices pero me da este error:

Could not find the main class: C:\ciclo-dai\Tema1\bin\ejercicios\CuadroDialogo. Program will exit.

Y en el acceso directo pongo:

"C:\Archivos de programa\Java\jre6\bin\javaw.exe" "C:\ciclo-dai\Tema1\bin\ejercicios\CuadroDialogo"


Gracias por la ayuda, un saludo.
  #8 (permalink)  
Antiguo 03/10/2010, 14:39
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Ejecutar un .class con un .bat

Hola,

Oops, tienes toda la razón, lo que sucede es que java.exe y javaw.exe esperan una clase, no un path a un archivo que contiene una clase y seguramente te va a generar ese error.

Captura de pantalla de las propiedades del acceso directo:
http://img101.imageshack.us/img101/3946/javaw.jpg

Esa sería la configuración que tendría que tener las propiedades del acceso directo para que funcione correctamente. Es decir que tienes que poner la ruta (path) a la carpeta donde está la clase donde dice "Iniciar en". Y en destino solamente el path a javaw.exe con la clase que quieres ejecutar.

Supongo que así tendrá que ejecutarse correctamente,
Saludos,
  #9 (permalink)  
Antiguo 03/10/2010, 14:47
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Ejecutar un .class con un .bat

Muchas gracias por la ayuda pero siento decirte que tampoco funciona así:

Tengo en Destino: "C:\Archivos de programa\Java\jre6\bin\javaw.exe" CuadroDialogo

Y en iniciar en: C:\ciclo-dai\Tema1\bin\ejercicios\

Y me da el error: Igual que antes, Could not find the main class: CuadroDialogo. Program will exit.

Gracias nuevamente por la ayuda.

Un saludo.
  #10 (permalink)  
Antiguo 03/10/2010, 15:38
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Ejecutar un .class con un .bat

Hola,

Cita:
Iniciado por NazCarLpa Ver Mensaje
... Y me da el error: Igual que antes, Could not find the main class: CuadroDialogo. Program will exit. ...
Lo voy a simplificar un poco más, solamente tienes que escribir esta línea en el acceso directo, no importa el "Iniciar en", solamente tienes que colocar esa línea cuando estas creado el acceso directo,

Cita:
"C:\Archivos de programa\Java\jre6\bin\javaw.exe" -cp .;"C:\ciclo-dai\Tema1\bin\ejercicios\" CuadroDialogo
Básicamente estas diciendo que ejecute la aplicación javaw.exe, que busque las clases en -cp(ruta) y que cargue la clase CuadroDialogo. Si de esta forma no te funciona correctamente entonces hay algo que no estas haciendo bien y/o no lo estas comentado aquí. Si no funciona entonces no tengo ni idea y posiblemente alguien mas pueda ayudarte con este problema.

Saludos,
  #11 (permalink)  
Antiguo 04/10/2010, 12:41
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Ejecutar un .class con un .bat

Nada, sigue sin funcionar, te agradezco la ayuda HackmanC.
  #12 (permalink)  
Antiguo 04/10/2010, 17:15
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Ejecutar un .class con un .bat

java -jar nombre.jar

Indicando la ruta si no estás en el directorio adecuado.

Recuerda que al crear el jar tienes que indicarle la clase que lleva el main para que pueda ejecutarse (Main Class).

http://www.cs.princeton.edu/introcs/...n/jar/jar.html

Incluso podrías ejecutarlo con dobleclick (sin bat) si tienes el JRE instalado.
  #13 (permalink)  
Antiguo 06/10/2010, 00:17
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años, 1 mes
Puntos: 5
Respuesta: Ejecutar un .class con un .bat

Muchas gracias chicos, ya lo conseguí ejecutar.

Al final lo hice con el .jar desde eclipse.

Un saludo y gracias nuevamente por las ayudas.
  #14 (permalink)  
Antiguo 06/10/2010, 05:42
 
Fecha de Ingreso: octubre-2010
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Ejecutar un .class con un .bat

En cualquier caso, si lo que necesitas es deshacerte de la consola en windows, en lugar de utilizar directamente el comando, utiliza start:
Código:
start "javaw MiClase.class"
Si no lo haces así el CMD se queda abierto durante la ejecución completa del programa, dando el mismo efecto que lanzando java en lugar de javaw
  #15 (permalink)  
Antiguo 06/10/2010, 14:06
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Ejecutar un .class con un .bat

Hola,

Cita:
Iniciado por Darkhogg Ver Mensaje
En cualquier caso, si lo que necesitas es deshacerte de la consola en windows, en lugar de utilizar directamente el comando, utiliza start:
Código:
start "javaw MiClase.class"
Si no lo haces así el CMD se queda abierto durante la ejecución completa del programa, dando el mismo efecto que lanzando java en lugar de javaw
Java y Javaw esperan un nombre de una clase, si lo escribes exactamente así te va a tirar una excepción 'NoClassDefFoundError' por el ".class". Y si escribes 'start' con esa composición de comillas (") desde una consola te va a abrir otra consola más porque toma lo que está entre comillas como el título de la ventana y no como la aplicación a ejecutar.

start javaw MiClase

Si el classpath no encuentra la clase, porque ejecutó ese comando en una carpeta diferente, también genera un "NoClassDefFoundError".

Cita:
Iniciado por HackmanC Ver Mensaje
"C:\Archivos de programa\Java\jre6\bin\javaw.exe" -cp .;"C:\ciclo-dai\Tema1\bin\ejercicios\" CuadroDialogo
Esta es normalmente la composición que tendría que tener una línea de comandos para ejecutar cualquier aplicación correctamente, si a NazCarLpa no le funcionó posiblemente fue porque no mencionó algo. Posiblemente el path a javaw no era el correcto, el classpath necesitaba mas librerías o el nombre de la clase era incorrecto (posiblemente ni había compilado la clase, lo que eclipse hace automáticamente).

Saludos,
  #16 (permalink)  
Antiguo 06/10/2010, 17:19
 
Fecha de Ingreso: octubre-2010
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Ejecutar un .class con un .bat

Cita:
Iniciado por HackmanC Ver Mensaje
Java y Javaw esperan un nombre de una clase, si lo escribes exactamente así te va a tirar una excepción 'NoClassDefFoundError' por el ".class". Y si escribes 'start' con esa composición de comillas (") desde una consola te va a abrir otra consola más porque toma lo que está entre comillas como el título de la ventana y no como la aplicación a ejecutar.
Lo primero sinceramente hace siglos que no lanzo una aplicación java desde consola de comandos, no era más que un ejemplo.
Lo segundo tienes mucha razón, pero basta añadir una cadena vacía delante:
start "" "blahblahblah"
  #17 (permalink)  
Antiguo 06/10/2010, 19:39
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Ejecutar un .class con un .bat

Cita:
Iniciado por Darkhogg Ver Mensaje
Lo primero sinceramente hace siglos que no lanzo una aplicación java desde consola de comandos, ...

Bueno, a mi me pasó algo parecido no me acordaba de la sintaxis exacta de los comandos, solamente lo quería aclarar porque algún tiempo después entran aquí al foro otras personas buscando la misma información.

Cita:
Iniciado por HackmanC Ver Mensaje
... Oops, tienes toda la razón, lo que sucede es que java.exe y javaw.exe esperan una clase, no un path a un archivo que contiene una clase y seguramente te va a generar ese error. ...

Cita:
Iniciado por Darkhogg Ver Mensaje
... Lo segundo tienes mucha razón, pero basta añadir una cadena vacía delante:
start "" "blahblahblah"
El problema acá es que se quiere evitar la consola del Símbolo del sistema de Windows (que no abra la ventana de cmd). El comando 'start' es un comando interno de 'cmd.exe', para usar 'start' obligatoriamente tienes que abrir una ventana.

Es decir, para usar 'start' tienes que tener una ventana de cmd abierta o escribir el acceso directo como: cmd /C start ... etc. Y por lógica abrirá una ventana de cmd aunque sea por unos segundos. En otros casos es muy útil.

Saludos,

Etiquetas: class, ejecutar, .bat
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 09:04.