PDA

Ver la versión completa : Yo pongo las clases, tu pones el .jar y el bat



pakoito
12/01/2008, 14:15
Estoy harto. HARTO. ¿Alguien podría hacerme un jar y un .bat (y su equivalente en linux) para poder ejecutar unas Classes que tengo? Le paso todo el material necesario, porque llevo 4 días para hacerlo y ya estoy que exploto.

PharaOnyx
12/01/2008, 14:18
¿Exactamente qué quieres hacer?

Saludos, Alex

edito: para Windows tienes aplicaciones que te crean archivos .exe que te hacen el 'trabajo sucio'

pakoito
12/01/2008, 14:21
¿Exactamente qué quieres hacer?

Saludos, Alex

edito: para Windows tienes aplicaciones que te crean archivos .exe que te hacen el 'trabajo sucio'
Eso es lo que llevo usando 5 días y no soy capaz. También lo he intentado a mano, a lo clásico, a pelo, sin condón, a lo basto, a la remanguillé, al bies y de cien mil formas y ninguna me ha funcionado, todas me tiran un error relacionado con dios-sabe-si-es-el-classpath que no soluciono.



Lo que quiero hacer es coger mi precioso código fuente, compilarlo, meterlo en un .jar y crear un ejecutable adjunto. Este pack de .jar + ejecutables win/lin los colgaría en internet para que todo el mundo pudiera usarlos.

PharaOnyx
12/01/2008, 14:25
¿El .jar lo tienes ya creado?. ¿Usas Eclipse como entorno de programación?. Tienes plug-ins que te crean el .jar automáticamente

Y para ejecutarlo es el clásico 'java -cp ruta_al_archivo/archivo.jar'

Saludos, Alex

Propeller
12/01/2008, 14:31
Busca algo de un manifest, que hacía falta eso para decirle a la máquina virtual cuál era la clase principal y dónde estaba el método main. Por lo demás, un .jar es un archivo zip renombrado, creo recordar.

Propeller

pakoito
12/01/2008, 14:32
No he creado el .jar (al menos no bien, hice un jar cvf tacata.jar Clase1.class Clase2.class Clase3.class), uso NetBeans Full sin plugins y al ejecutarlo fuera del entorno me da ese error que te digo antes. He probado todos los métodos normales que me ha dicho la gente y ninguno ha funcionado, lo único que quiero es enviar mis sources y que me mandéis el ejecutable de vuelta que me urge.


Busca algo de un manifest, que hacía falta eso para decirle a la máquina virtual cuál era la clase principal y dónde estaba el método main. Por lo demás, un .jar es un archivo zip renombrado, creo recordar.Me dijeron que lo borrara y seguía igual, probaré ahora a modificarlo...

Wild[Kyo]
12/01/2008, 14:33
Pero a ver... Java es multiplataforma y la gracia precisamente es que no hace falta crear un ejecutable.

El .class se puede ejecutar, basta que en Linux o en Windows ejecutes java 'nombredelarchivo'. Donde 'nombredelarchivo' es la clase que tiene el main.

Aunque no entiendo para que quieres hacer un ejecutable, que no creo que te pidan, un .bat no te servira porque cada uno tendra un PATH y CLASSPATH distinto. Lo mismo con un script de Linux.

A las malas, y si te es necesario, puedes crear un archivo .jar.

Para eso necesitas el JDK, entrar en la terminal, o simbolo del sistema y poner:

jar cfv programa.jar Clase1.class Clase2.class Imagen.gif Sonido.au OtrosArchivosqueuseelprograma

Si usas Eclipse lo tendrás más automatizado y no deberías tener problemas.

PharaOnyx
12/01/2008, 14:34
Échale un vistacillo a este (http://www.fsl.cs.sunysb.edu/~dquigley/cse219/index.php?it=netbeans&tt=jar&pf=y) tutorial, a ver si te sirve :)

Saludos, Alex

pakoito
12/01/2008, 14:37
El .class se puede ejecutar, basta que en Linux o en Windows ejecutes java 'nombredelarchivo'. Donde 'nombredelarchivo' es la clase que tiene el main."java.lang.NoClassDefFoundError: Combate" una y otra y otra y otra y otra y otra y otra y otra vez independientemente del método que use.

^MiSaTo^
12/01/2008, 14:38
pakoito si ya tienes el .jar tienes que hacerte un .bat así:

SET JAVA_HOME=C:\javaloquesea
PATH=%JAVA_HOME%\bin;%PATH%
java -jar tujar.jar
pause
Esto es para windows.
Para linux sería un .sh.
en java_home tienes que poner la ruta al jdk. Si quieres pasame las rutas y te lo personalizo.

Propeller
12/01/2008, 14:39
"java.lang.NoClassDefFoundError: Combate" una y otra y otra y otra y otra y otra y otra y otra vez independientemente del método que use.

Hazme caso, es lo que yo te digo. Busca cómo hacer el archivo manifest ese guarro que es el que tiene que llevar la información de cuál es la clase "main". Por cierto, esa clase debe llevar un método main(), por si acaso no lo has puesto :p

Propeller

pakoito
12/01/2008, 14:41
Pack completo con todo lo que me habéis dicho. El primero en encontrar el error se lleva el premio.

^MiSaTo^
12/01/2008, 14:47
Hazme caso, es lo que yo te digo. Busca cómo hacer el archivo manifest ese guarro que es el que tiene que llevar la información de cuál es la clase "main". Por cierto, esa clase debe llevar un método main(), por si acaso no lo has puesto :p

Propeller

El problema puede ser del manifest de los huevos (el netbeans te lo crea solito y creo que eclipse tb) o que no este definido el java_home.
Porque en el curro me han pasado ambas cosas xDDD

< - >
Sip, por lo que he visto en tu captura tu problema es del manifest.mf
Yo no se hacer un manifest desde 0, intenta importar el proyecto a netbeans y el te lo hace solito ;)

< - >
Mira un tutorial de sun sobre los manifest: http://java.sun.com/docs/books/tutorial/deployment/jar/manifestindex.html

pakoito
12/01/2008, 14:48
Modificado el Manifest a&#241;adiendo el MainClass. El error ha cambiado pero sigue partiendo de lo mismo:



public class Combate {

public static void main(String[] args) throws IOException, InterruptedException {

^MiSaTo^
12/01/2008, 14:52
Ahora puede ser problema del classpath.
Mira más cosas sobre los .jar:http://java.sun.com/docs/books/tutorial/deployment/jar/

< - >
Acabo de encontrar una solución a tu problema: http://www.captain.at/programming/java/executable-java-application.php leete la última pregunta ;) a ver si te ayuda

pakoito
12/01/2008, 15:16
&#201;chale un vistacillo a este (http://www.fsl.cs.sunysb.edu/~dquigley/cse219/index.php?it=netbeans&tt=jar&pf=y) tutorial, a ver si te sirve :)

Saludos, Alex
&#161;Premio! Ahora os lo subo para que lo prob&#233;is.


EDIT: El problema era que estaba en el paquete default, una vez cambiado la creaci&#243;n del .jar se automatizaba.

< - >
Sacado, ya pod&#233;is probar la calculadora de da&#241;os. Gracias a todos y siento estar algo borde, me estaba sacando de quicio el tema y ya he tenido que reconstruir el rat&#243;n dos veces y limpiar la saliva de la pantalla otras cinco.



Calculador de da&#241;os de Wartricks, y previ&#250; de los ej&#233;rcitos:

http://www.pcoffice.com.mx/Imagenes/flecha_abajo.gif

Wild[Kyo]
12/01/2008, 15:25
Estos ClassPath... :p

Mira, crea un directorio en C: llamado 'a'.

Mete ahi todos los archivos compilados del proyecto, y todos los archivos necesarios para ejeuctarlo.

Suponiendo que tengas el ejecutable de Java en el PATH, entra desde el simbolo de sistema a ese directorio y ejecuta:
java -cp C:\a ClasePrincipal

EDIT: Co&#241;o, estaba comiendo y he tardado en postear y mientras hab&#233;is postado tropocientos y ya lo ha solucionao. XD

^MiSaTo^
12/01/2008, 15:31
Por lo que he visto aqui hay muchos más javeros de lo que pensaba xDD

PharaOnyx
12/01/2008, 15:34
Por lo que he visto aqui hay muchos más javeros de lo que pensaba xDD
¿Tú también eres masoquista?. Digo... ¿usas Java para programar? :p x'D

Saludos, Alex

^MiSaTo^
12/01/2008, 15:41
¿Tú también eres masoquista?. Digo... ¿usas Java para programar? :p x'D

Saludos, Alex

Sí, soy masoquista. No me queda más remedio, mi trabajo es programar en java xDDD

dardo
12/01/2008, 17:55
Sí, soy masoquista. No me queda más remedio, mi trabajo es programar en java xDDD

Y a mi ejecutar progarmas java, de esos que me cuelgan el Xeon biprocesador.