Foro sobre Java EE > Problema con librerias
Hola Manuel.
1.- Si el proyecto usa la libreria log4j, no es necesario que te bajes el codigo fuente de esta, solo descargate el jar y adjuntalo a tu proyecto:
http://mvnrepository.com/artifact/log4j/log4j/1.2.16
Haz lo mismo con todas las librerias que necesitas :
http://mvnrepository.com/artifact/com.google.guava/guava/r05
2.- El error que te sale en el codigo fuente del log4j se debe a que esta libreria tiene o necesita dependencias (otros jars) para su compilacion , mas no para su ejecucion. Por ello te decia qu eno descargues el code fuente, sino el jar.
3.- Maven es un framework que deberias conocer :
http://www.javahispano.org/storage/contenidos/Tutorial_de_Maven_3_Erick_Camacho.pdf
Saludos.
Saludos
Hola JRichard, gracias por la pronta respuesta, si, hasta ahora lo venia usando como libreria externa pero queria ponerlo en el proyecto para que al compilar me de el JAR listo, osea con todas las librerias dentro como parte del codigo para ofuscarlas. Otra cosa, en mi proyecto a la hora de ejecutarlo me da el siguiente error: "ERROR StatusLogger Unable to locate a logging implementation, using SimpleLogger" y por lo tanto no carga el Log4j. Este error se debe a que no encuentra el archivo de propiedades, este archivo se llama "log4j-provider.properties" y lo tengo ubicado en la carpeta META-INF, el problema es que nose como hacer para indicarle que esta hay, como habia mensionado al principio el código no es mio y tengo la version compilada y el source code, la compilada funciona correctamente y la que no lo esta me da ese error, nose a que se deba si se supone que ambas son iguales, lo que si note es que la aplicacion se ejecuta correctamente desde la GUI de netbeans pero no una vez que esta compilada...
Encuanto a maven, si, la verdad es que varias veces trate de aprender sobre el pero lo poco que hiba encontrando no lo entendia :/ ahora me pongo a leer el link que pusiste. Gracias
Pienso que eso debe indicarse en algun XML del compilador de netbeans pero nose donde...
Hola Manuel. Al parecer no es por ese archivo que mencionas. Tienes el archivo log4j.properties ?
Si deseas puedes usar este log4j.properties :
https://gist.github.com/jrichardsz/4c6dac088c00af98b41a
Si deseas el log a un archivo , usa este:
https://gist.github.com/jrichardsz/53bef54767ec5f44f32b
Con esta configuracion, el log lo envias a un file y a la consola:
https://gist.github.com/jrichardsz/dec1b2e9d01163672208
Este archivo log4j.properties debe ubicarse en la raiz de tu proyecto :
log4j.properties
main.java (default package)
com/myapp/file.java
META-INF
Puedes configurarle una ruta especifica pero es un poco complicado.
Todo esto te lo ahorras con maven. Ademas no solo es ahorro de tiempo. Si te dedicaras profesionalmente al desarrollo de sistemas, MAVEN es muy usado en entornos empresariales. Si despues de leer el documento aun ves al maven complicado, juntante con unos cuantos amigos y les podria explicar maven en el menor tiempo posible usando alguna web de learning o un hangout de gmail.
Saludos.
Hola Richard, el archivo log4j.properties no lo tengo, pero este archivo se necesita solo para compilarlo y despues en el archivo compilado ya no esta? digo porque tengo la aplicacion compilada funcionando correctamente y no tiene ese archivo poreso es mi duda, el compilado se supone que es el mismo que el source-code pero cuando lo compilo, funciona bien pero el log4j no carga y no me muestra ningun mensaje por consola... Respecto a lo de Maven me voy a poner a investigar un poco mas porque estoy casi seguro que el que compilo la aplicacion que tengo uso Maven, pero lo que fui leyendo hasta ahora no lo entendi, lo tengo instalado a Maven en Netbeans, pongo Crear proyecto Maven > Aplicacion. Y me crea un proyecto con varias "carpetas". Pero de hay nose como implementar las cosas, no tengo idea, mañana voy a leer bien el manual que me pasaste, lei solo la primera parte por falta de tiempo. No tengo amigos que les guste la programacion, estoy solo en esto, lo hago por hobby, lo que pasa es que yo programaba en otros lenguajes y en java soy un poco nuevo. Gracias por la ayuda. Saludos!
Estuve leyendo y no entiendo bien el Maven, ya me dio bronca, todos los ejemplos que hay son sobre usar maven para el entorno WEB y yo no lo quiero utilizar para eso u.u acaso nadie programa aplicaciones de escritorio con Java? u.u ya no entiendo nada ¬¬
@Manuel
En primer lugar, deberías haber planteado esta cuestión en el foro JavaSE.
No entiendo esto: "... pero quería ponerlo en el proyecto para que al compilar me de el JAR listo, osea con todas las librerias dentro como parte del codigo para ofuscarlas..."
Si esas librerías ya son de código abierto, ¿Cuál es la intención de ofuscarlas?.
Comprendo que quieras ofuscar tu propio código, pero el de librerías externas que son Open, no le veo sentido.
Hola choces, no me gusta tener las librerias de manera externas, me gusta que esten incluidas en el mismo JAR y como ofusco la aplicacion ya se ofusca todo, pero igual en eso no tengo problemas.
Ya logre hacer funcionar Maven, ya mas o menos lo entiendo, agregue todas las librerias que necesito pero ahora el problema es que al compilar mi proyecto no incluye ninguna de las librerias dentro del JAR, como puedo hacer que las incluya?
Puedes probar con esto: https://code.google.com/p/jarjar/
No hay nada en la distribución de JavaSE que lo permita.
gracias, luego voy a probar, pero igual es lo de menos, puedo pasar las librerias dentro del JAR manualmente, lo que si realmente me tiene desesperado es un error que me da Log4j que es la principal razon de haber creado este post. Al iniciar mi aplicacion desde netbeans o eclipse la aplicacion corre perfectamente pero cuando lo compilo log4j no funciona y me da este error: "ERROR StatusLogger Unable to locate a logging implementation, using SimpleLogger" se que tiene que ver con el archivo properties, jrichard me recomendo que use maven, lo instale, aprendi mas o menos como usarlo pero despues de todo sigo con el mismo problema. Lo que no entiendo es porque el proyecto compilado (no lo compile yo) funciona perfectamente y cuando lo compilo yo no me funciona, tengo exactamente los mismos archivos, es mas el problema esta en la clase principal porque si reemplazo la clase principal de mi proyecto por la clase principal del que no compile yo funciona bien. el log4j que uso es de la forma "org.apache.logging.log4j.Logger" lo digo porque estuve viendo muchos tutoriales y todos usan la linea "PropertyConfigurator.configure();" para especificar la ubicacion del archivo, pero el log4j que uso no tiene esa funcion.
Sigo probando y no logro que funcioneee!!! :'(
Explico nuevamente por si no se entendio.
Me pasaron una aplicacion compilada y su codigo fuente. La aplicacion compilada funciona perfectamente, el codigo fuente si lo ejecuto desde netbeans o eclipse tambien funciona correctamente, pero cuando lo compilo el Log4j2 ya no funciona y me devuelve este mensaje: "ERROR StatusLogger Unable to locate a logging implementation, using SimpleLogger". Probe compilandolo con netbeans, probe con maven en eclipse, poniendo el archivo properties en todos lados, el archivo log4j2.xml también y de ninguna forma funciona. El archivo que me pasaron ya compilado y el que yo compile tienen exactamente la misma jerarquia de archivos, osea viendolos desde el winrar son iguales. Lo curioso es que si yo reemplazo la clase principal de la aplicacion que me pasaron ya compilada en la que yo compile la aplicacion funciona correctamente. Donde puede ser que este la falla? No logro ubicarla. La version de Log4j que uso es la "2.0-rc1" Ya nose que mas probar, porfavor que alguien me ayude, esto ya me esta desesperando!! :'(
Otros datos: Los archivos que usa la aplicacion que me mandaron ya compilada son el Log4j2.xml en la raiz del JAR y un log4j-provider.properties en la carpeta META-INF
Hola, estoy intentando utilizar un proyecto creado por otra persona pero tengo un problema con las librerias. Hace uso de estas librerias:
- Log4j
- Commons-Lang3 (apache)
- Commons-Codec (apache)
- Commons-io (apache)
- Google-Common
- Google-Gson
Tengo problemas con las librerias Log4j y google-common el problema es que descargo el sourcecode de log4j porejemplo pero cuando arrastro todos los archivos a mi proyecto me da errores en un monton de librerias inexistentes como porejemplo "lmax", "mongodb", entre muchas otras y la verdad es que nose como compilarlo :/ lei por internet algo de maven que la verdad no entendí bien que es, nose si es algo asi como un paquete de librerias, ojala alguien pueda aclararme las dudas. Saludos!