Java - ejecutar jar

 
Vista:

ejecutar jar

Publicado por Francisco (16 intervenciones) el 14/11/2006 18:39:29
He creado un jar desde ant con los siguientes comendos:
<project name="FicheroJar" default="distribuir" basedir=".">
<property name="src" value="src"/>
<property name="lib" value="lib\itext-1.4.5.jar"/>
<property name="classes" value="classes"/>
<property name="dist" value="dist"/>

<target name="limpiar">
<delete dir="${classes}"></delete>
<delete dir="${dist}"></delete>
</target>
<target name="compilar" depends="limpiar">
<mkdir dir="${classes}"/>
<mkdir dir="${classes}/lib"/>
<mkdir dir="${classes}/utiles"/>
<mkdir dir="${dist}"/>
<javac srcdir="${src}" destdir="${classes}" classpath="lib/itext-1.4.5.jar" verbose="true" debug="true" />
</target>
<target name="copiar" depends="compilar">
<copy file="lib/itext-1.4.5.jar" todir="${classes}/lib"></copy>
<copy todir="${classes}/utiles">
<fileset dir="utiles"/>
</copy>


</target>
<target name="distribuir" depends="copiar" >
<jar destfile="${dist}/programa.jar" basedir="${classes}" manifest="manifiesto.mf" compress="true">
</jar>
</target>


</project>

el fichero manifiesto es el siguiente
Manifest-Version: 1.0
Sealed: true
Main-Class: Inicial
Class-Path: lib\itext-1.4.5.jar

Pero al ejecutar el jar, me dice que no encuentra determinadas librerias. He hecho esto desde eclipse y el programa me funciona perfectamente. Yo creo que es algún problema con el classpath, pero llevo mucho tiempo con esto y no veo manera de solucionarlo. Por cierto, el jar contiene la misma estructura de directorios que tengo en eclipse.

Un ayuda por favor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:ejecutar jar

Publicado por chuidiang (950 intervenciones) el 14/11/2006 20:17:55
Hola:

Al lado de tu jar debes crear (fuera de el) un directorio lib y dentro meter itext-14.5.jar. El Class-Path de dentro del fichero de manifiesto se busca fuera del jar y con path relativo al jar.

Si quieres meter el itext-14.5.jar dentro del jar, tienes dos opciones:

1. Desempaquetar itext-14.5.jar en algún sitio y empaquetar sus class dentro de tu jar
2. Usar alguna librería externa como onejar (http://one-jar.sourceforge.net/) que permite meter los jar dentro del jar y los encuentra.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ejecutar jar

Publicado por Francisco (16 intervenciones) el 15/11/2006 09:47:15
Gracias por tu respuesta. Lo que he hecho ha sido utilizar onejar, mediante fatjat, un pugun de eclipse, pero me surge otro problema, ya que me gustaría tener todo el programa en un solo jar. Tengo una carpeta de utilidades, donde almaceno gráficos y algun fichero de texto y con extensión properties, pues bien esta la carpeta la tengo que sacar fuera del jar para que pueda lerr de ella. Sabeis algún método, para poder meter tambien esto en el jar.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:ejecutar jar

Publicado por chuidiang (950 intervenciones) el 15/11/2006 23:43:44
Hola:

Puedes meterla en el jar, pero se lee de distinta forma. En http://www.chuidiang.com/chuwiki/index.php?title=Carga_de_im%C3%A1genes tienes un ejemplo de como cargar imágenes, entre ellas las que están dentro del jar.

Basicamente, debes coger una clase que esté dentro de ese jar y obtener su classloader y a partir de este el InputStream del fichero que está dentro del jar

InputStream is =
UnaClaseDentroDelJar.class.getClassLoader().getResourceAsStream("path_dentro_del_jar/fichero");

Properties p = new Properties();
p.load (is);

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar