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

Un par de problemas con los archivos JAR en Eclipse

Estas en el tema de Un par de problemas con los archivos JAR en Eclipse en el foro de Java en Foros del Web. Hola a todos, muy buenas, Estoy dando mis primeros pasos con este IDE, ya que estoy en 1º de Desarrollo de Aplicaciones Web. Ahora nos ...
  #1 (permalink)  
Antiguo 20/11/2015, 13:04
Avatar de BramSt  
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 9 años
Puntos: 5
Un par de problemas con los archivos JAR en Eclipse

Hola a todos, muy buenas,

Estoy dando mis primeros pasos con este IDE, ya que estoy en 1º de Desarrollo de Aplicaciones Web.

Ahora nos han estado enseñando a hacer nuestras propias clases, y comprimirlas (o no) en un JAR para reutilizar esos métodos en otros proyectos...

Pero se me han presentado un par de problemas. En este hilo trataré sólo uno.

-El primero, es que nuestro profesor nos dió a principio de curso un JAR que lee numeros por teclados. La única manera de hacerlo por mí mismo que sé es con scanner, pero nunca la he utilizado.

El tema es que yo he creado una función llamada LeerNumeroYValidar y que incluye su JAR, tal como sigue:


Código Java:
Ver original
  1. package claseprimera; //nombre del pakete se elige en el asistente
  2.  
  3. import utilidades.Leer; //este es el jar con la clase que nos dio el profesor.
  4.  
  5.  
  6. public class Numero
  7. {
  8.  
  9.     /**
  10.      * <b>metodo que lee numero y valida</b>
  11.      * @param texto será el texto de entrada
  12.      * @param numeroValidante número que rompe la condición
  13.      * @return el número leído y validado
  14.      */
  15.     public static int LeerNumeroYValidar(String texto, int numeroValidante)
  16.     {
  17.         int numeroAValidar;
  18.        
  19.        
  20.         while (true)
  21.         {
  22.             System.out.println(texto);
  23.             numeroAValidar = Leer.leerInt(); //aqui utilizo el JAR del profe
  24.            
  25.            
  26.             if (numeroAValidar >= numeroValidante)
  27.             {
  28.                 break;
  29.             }
  30.            
  31.             System.out.println("El número debe ser igual o mayor a " + numeroValidante);
  32.         }
  33.        
  34.         return numeroAValidar;
  35.        
  36.        
  37.     }
  38. }

¿Qué ocurre? Que cuando intento utilizar la clase Numero en otro proyecto, por ejemplo:

Código Java:
Ver original
  1. import claseprimera.Numero;
  2.  
  3.  
  4. public class Main {
  5.  
  6.     /**
  7.      * @param args
  8.      */
  9.     public static void main(String[] args) {
  10.        
  11.         int numero=Numero.LeerNumeroYValidar("mete numero", 0);
  12.  
  13.     }
  14.  
  15. }

Me salta este error:

Código Java:
Ver original
  1. mete numero
  2. Exception in thread "main" java.lang.NoClassDefFoundError: utilidades/Leer
  3.     at claseprimera.Numero.LeerNumeroYValidar(Numero.java:27)
  4.     at Main.main(Main.java:11)
  5. Caused by: java.lang.ClassNotFoundException: utilidades.Leer
  6.     at java.net.URLClassLoader.findClass(Unknown Source)
  7.     at java.lang.ClassLoader.loadClass(Unknown Source)
  8.     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
  9.     at java.lang.ClassLoader.loadClass(Unknown Source)
  10.     ... 2 more

Como veis, la clase se ejecuta (en la línea 1 tenéis el texto "mete número", pasado por parámetro), y, aunque es evidente que el error es que debo referenciar también el JAR de mi profesor -y no sólo el que contiene la clase Numero-, para que todo vaya correctamente, mi profesor comenta que no debería ser necesario incluir su JAR para que se pueda usar mi función. Como hemos tenido mucho lío con los exámenes y tampoco quiero acudir a él con todos los problemas (como bien dice él, en Programación a veces hay que buscarse la vida), me gustaría, antes de acudir a él, saber si podéis ayudarme y decirme en qué estoy fallando.

Repito que si añado su JAR funciona correctamente, y quizá es que se pueda comprimir también su JAR en mi propio JAR y yo no sé hacerlo... No sé.

Un saludo.
  #2 (permalink)  
Antiguo 23/11/2015, 05:16
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Un par de problemas con los archivos JAR en Eclipse

Cita:
mi profesor comenta que no debería ser necesario incluir su JAR para que se pueda usar mi función.
Cuando uno es muy novato a veces cree entender cosas que no son así, y en este caso si tu profesor ha dicho realmente eso, falta parte del contexto.

Si tú quieres usar su clase Leer en tu proyecto, el jar sí o sí debe estar en el classpath de tu proyecto, y en tu código debe aparecer el import a la clase Leer.

Cita:
import utilidades.Leer; //este es el jar con la clase que nos dio el profesor.
Esto es un ejemplo de esos malentendidos, un import hace referencia a una clase o clases, no a un jar. El jar es un zip que contiene a las clases, nada más.

Cita:
La única manera de hacerlo por mí mismo que sé es con scanner, pero nunca la he utilizado.
Pues tardarías 5 minutos en aprender a a usarlo, e igual tu profesor se refería a eso con lo de que no necesitas su jar para que trabaje tu función.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 23/11/2015, 10:27
Avatar de BramSt  
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 9 años
Puntos: 5
Respuesta: Un par de problemas con los archivos JAR en Eclipse

Cita:
Iniciado por Xerelo Ver Mensaje
Cuando uno es muy novato a veces cree entender cosas que no son así, y en este caso si tu profesor ha dicho realmente eso, falta parte del contexto.

Si tú quieres usar su clase Leer en tu proyecto, el jar sí o sí debe estar en el classpath de tu proyecto, y en tu código debe aparecer el import a la clase Leer.


Esto es un ejemplo de esos malentendidos, un import hace referencia a una clase o clases, no a un jar. El jar es un zip que contiene a las clases, nada más.


Pues tardarías 5 minutos en aprender a a usarlo, e igual tu profesor se refería a eso con lo de que no necesitas su jar para que trabaje tu función.

Gracias por tu respuesta, Xerelo.

Realmente yo a comienzo de curso empecé a usar el Scanner a mi bola, pero dijo que no le gustaba mucho y que prefería que usásemos su JAR... igual le entendí yo mal, o hay maneras de leer por teclado más eficientes que scanner y es lo que nos dio él en su JAR, no lo sé.

Pues ya hablaré con él del tema, que compruebe él mi código y si realmente me falta algo a mí o le he entendido mal o lo que sea.

Cuando me diga él lo que sea ya pondré por aquí lo que ha pasado (por si pudiera servir a otros), y marcaré entonces el hilo como solucionado. Muchas gracias :)
  #4 (permalink)  
Antiguo 23/11/2015, 13:45
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Un par de problemas con los archivos JAR en Eclipse

Buenas,

La clase Scanner es seguramente mucho mas eficiente (se apoya en streams y NIO) que la clase leer de tu profe, pero entiendo que el prefiere que todos utiliceis la misma utilidad para facilitar vuestro trabajo y homogeneizar las soluciones de las practicas.

Las dependencias de los jars que aniades tienen que ser tambien distruidas. En java no existe la posibilidad de hacer compilado estatico como en C/C++.

A ver que te cuenta. Suerte.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 23/11/2015, 15:54
Avatar de BramSt  
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 9 años
Puntos: 5
Respuesta: Un par de problemas con los archivos JAR en Eclipse

Cita:
Iniciado por Profesor_Falken Ver Mensaje

Las dependencias de los jars que aniades tienen que ser tambien distruidas. En java no existe la posibilidad de hacer compilado estatico como en C/C++.



Un saludo
Gracas de nuevo por responderme, Profesor Falken. Veo que de nuevo mi ignorancia respecto a las dependencias son clave aquí XD por eso te emplazo a la pregunta del otro hilo: No sé lo que son las dependencias :P
  #6 (permalink)  
Antiguo 23/11/2015, 17:25
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: Un par de problemas con los archivos JAR en Eclipse

Con dependencias yo entiendo que se refiere a Maven, que es un controlador de versiones de los JAR para que cuando otro coja el proyecto descargue las versiones de los JAR que funcionan para ese proyecto (si te entra la curiosidad los distintos jar se encuentran en http://mvnrepository.com/ que, como verás son proyectos compilados con sus distintas versiones), pero en la FP no se ve Maven aún, así que dejemoslo en un parentesis, salvo que me equivoque claro (que a lo mejor con dependencias se refiere a algo que me ha faltado aprender, porque yo también vengo de FP recién terminada).

Dudo que tu profe (yo vengo de DAM) te haya dicho que no puedas usar Scanner. En todos lados lo utilizamos. De todos modos, como consejo familiarizate con esta página (te lo dejo abierto por donde la lectura del teclado) http://chuwiki.chuidiang.org/index.p...eclado_en_java y con http://stackoverflow.com/ para buscar errores. Si no consigues solucionar tus problemas, aun buscando por google, entonces obviamente pregunta por aquí que seguro que se te podrá ayudar.

Un saludo y suerte ;)
  #7 (permalink)  
Antiguo 24/11/2015, 09:20
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Un par de problemas con los archivos JAR en Eclipse

Dependencias son toda aquella librerías/bibliotecas ajenas a tu código pero que son usadas por tu proyecto. El jar/clase utilidades.Leer sería una dependencia de tu proyecto.

Maven es un gestor de dependencias (en realidad es más que eso) como puede serlo Ivy.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #8 (permalink)  
Antiguo 24/11/2015, 17:35
Avatar de BramSt  
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 9 años
Puntos: 5
Respuesta: Un par de problemas con los archivos JAR en Eclipse

Muchas gracias por vuestra explicación de las dependencias.


Mechabits, tomo noto de esas páginas. Aunque Stackoverflow ya la conocía y es increíble... No hay duda que alguien no haya preguntado ahí. Pena que el nivel de inglés técnico que requiere sea muy alto. Me temo que con la miserable hora a la semana que nos dan en la FP mucho no nos va a ayudar XD (¿a quién se le ocurre meter 1 hora a la semana de inglés técnico y 4 de Formación y Orientación Laboral, cuando la primera es muchísimo más importante?)


Pero bueno, sí, a ver a qué se refiere mi profe con que no necesito su clase Leer en el proyecto, si una de mis funciones lleva uno de los métodos de dicha clase (el único) dentro... Tengo curiosidad la verdad.

Etiquetas: clase, eclipse, jar, metodo, par, programa, string
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:03.