Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Seyro97 en 23 Marzo 2015, 04:35 am



Título: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: Seyro97 en 23 Marzo 2015, 04:35 am
Hola, muy buenas a tod@s!

El proceso es simple: estoy intentando crear una aplicación con una librería compilada en un .jar. Al compilar el programa principal (el comando lo mostraré ahora)no me sale ningún error, pero a la hora de ejecutar el archivo .class con un CLASSPATH en el directorio del .jar me dice 'No se ha encontrado la clase principal Main',pero esa es la única clase escrita en el .java

Comandos usados:

javac -cp "lwjgl.jar" Main.java (No da ningún error, me crea un .class)
set CLASSPATH="C:\Users\Carlos\Desktop\Game" (No da ningún error)
java Main (El error antes mencionado)

ESPERO QUE ME PUEDAN AYUDAR. GRACIAS POR SU ATENCIÓN


Título: Re: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: 3n31ch en 23 Marzo 2015, 12:54 pm
Ve las versiones de java, quizás no sea esto (Y sinceramente no leí muy detenidamente tu mensaje) Pero usualmente cuando se intenta ejecutar un software hecho en una versión de java mas actual que la versión instalada te da como error que el MAIN no fue encontrado.


Título: Re: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: Usuario Invitado en 23 Marzo 2015, 13:06 pm
Buen día,

¿En el folder Game están tus .class?

Lo digo porque el objetivo del Class Path en Java es localizar los ficheros .class que te genera el compilador.

Crea una carpeta llamada META-INF dentro de src. Dentro crea un archivo llamado MANIFEST.MF en el cual pondrás en el Class Path las librerías de las que hagas uso (JARs). Por ejemplo:

Código:
Main-Class
com.company.app.Main
Classpath
Class-Path: lib/json.jar lib/slf4j.jar

En el ejemplo anterior las librerías están en el folder lib. Por eso en mi classpath coloco lib/[libreria] para que se agregue al classpath.

Main-Class indica la clase principal. En el caso anterior está en el paquete com.company.app y se llama Main.

Espero sea de utilidad. Un saludo.


Título: Re: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: Seyro97 en 23 Marzo 2015, 20:54 pm
La cosa es que tanto jars como archivos .java (solo hay uno) están en una sola carpeta, entonces no se donde poner ese META-INF


Título: Re: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: Usuario Invitado en 23 Marzo 2015, 21:28 pm
¿No usas IDE? Poner todo en un solo lugar es no tener ningún tipo de organización en el proyecto. Todo IDE te crea una estructura estándar de directorios.

En todo caso compila:

Código:
javac -cp "*" Main.java

Y ejecuta:

Código:
java -cp "*" Main

El compilador y el runtime interpreta "*" como todos los JARs. Así que, como tienes todos los JARs con el código fuente sin paquetes ni nada, se debe colocar "*". Si tuvieras los JARs en un folder llamado lib, se cambiaría por "lib/*" (necesario JDK 7+).


Saludos.


Título: Re: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: Seyro97 en 23 Marzo 2015, 22:00 pm
Es que como solo estaba haciendo pruebas ya que nunca había usado un jar como librería, no tenía nada organizado :P

Me sale el mismo error...

Gracias por responder


Título: Re: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: Usuario Invitado en 23 Marzo 2015, 22:10 pm
No es que no detecte las librerías, te está diciendo que no detecta el método main en la clase Main, lo que me parece muy raro. ¿Estás seguro que el método main está correctamente escrito?


Título: Re: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: Seyro97 en 23 Marzo 2015, 22:33 pm
Completa y absolutamente:

Código
  1. import org.lwjgl.opengl.Display;
  2. import org.lwjgl.opengl.DisplayMode;
  3. import org.lwjgl.LWJGLException;
  4. import org.lwjgl.opengl.PixelFormat;
  5. import org.lwjgl.opengl.ContextAttribs;
  6.  
  7. import static org.lwjgl.opengl.GL11.glViewport;
  8.  
  9. public class Main {
  10. public static final int WIDTH = 1280;
  11. public static final int HEIGHT = 720;
  12. public static final int FPS_CAP = 60;
  13.  
  14. public static void Init() {
  15. ContextAttribs Attribs = new ContextAttribs(3, 2).withForwardCompatible(true).withProfileCore(true);
  16.  
  17. try {
  18. Display.setDisplayMode(new DisplayMode(WIDTH, HEIGHT));
  19. Display.create(new PixelFormat(), Attribs);
  20. } catch(LWJGLException Ex) {
  21. Ex.printStackTrace();
  22. }
  23.  
  24. glViewport(0, 0, WIDTH, HEIGHT);
  25. }
  26.  
  27. public static void Core() {
  28. Display.sync(FPS_CAP);
  29. Display.update();
  30. }
  31.  
  32. public static void Close() {
  33. Display.destroy();
  34. }
  35.  
  36. public static void main(String[] args) {
  37. Main.Init();
  38.  
  39. while(!Display.isCloseRequested()) {
  40. Main.Core();
  41. }
  42.  
  43. Main.Close();
  44. }
  45. }


Título: Re: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: 3n31ch en 24 Marzo 2015, 03:02 am
Viste el tema de tener java actualizado. Hablo en serio, se que parece estúpido, ya que el error apunta claramente al Main, pero por alguna razón Java lo hace así. Descarga la ultima versión de Java y dime si sigue el error.

https://www.java.com/es/download/ (https://www.java.com/es/download/)


Título: Re: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: Seyro97 en 24 Marzo 2015, 03:34 am
Tanto con Java Development Kit como con Java Runtime Enviroment tengo las versiones 8, Update 40 de 64 bits


Título: Re: (Ayuda) Error al ejecutar una aplicación usando la librería LWJGL
Publicado por: 3n31ch en 24 Marzo 2015, 04:06 am
Puedes intentar con otro programa simple, algo que sume, para ver si te compila bien todo.?  :P