2012-06-18 14 views
7

posible duplicado:
How to determine which classes are used by a Java program?Exportación de clase ejecutable Java para archivo .jar incluyendo dependencias requeridas solamente

Tengo un proyecto Java en Eclipse que contiene una gran cantidad de clases de Java. Quiero exportar uno de ellos a un archivo .jar pero me encontré con algunos problemas.

ya he leído a través de algunos hilos existentes, pero no he tenido la respuesta correcta para mi requisito, porque:

Si decido "Exportar a archivo JAR" Tengo la clase correcta exportado, pero el. El archivo jar no contiene las dependencias requeridas para ejecutar el archivo jar.

Si selecciono "Exportar a archivo JAR ejecutable", el archivo jar resultante contiene todas las dependencias pero también incluye todas las otras clases de todo el proyecto (también aquellas que no necesito).

¿Cómo puedo exportar la clase Java única a un archivo .jar que también incluye las bibliotecas necesarias para ejecutar el archivo jar? El archivo jar resultante debe ser lo más pequeño posible.

Muchas gracias.

+0

Son ¿Estás usando maven? Consulte el [plugin de ensamblaje] (http://maven.apache.org/plugins/maven-assembly-plugin/) –

+0

Tengo la misma pregunta: he escrito un programa simple y con todo lo de commons, pesa más de 3 Meg ! Estoy seguro de que si pudiera construir el frasco con solo las clases que realmente necesita, sería muy pequeño. –

Respuesta

1

Puede crear un proyecto nuevo con solo la clase que necesita y exportar ese proyecto como un contenedor ejecutable.

+0

Esa es la solución para un solo archivo, pero luego tengo que crear un nuevo proyecto cada vez que tengo que exportar una sola clase. En un gran proyecto que podría significar mucho trabajo. O incluso cuando solo necesito una clase, pero esa clase necesita otras clases del proyecto, tengo que buscar todas las clases necesarias y moverlas al nuevo proyecto. ¿Por qué no hay una posibilidad automática de mantener pequeñas las aplicaciones exportadas? – fachexot

0

Puede haber una solución temporal, dependiendo del caso de uso para el que lo necesite. En general, no será posible realizar un análisis de dependencia completo ya que su código podría cargar clases en el tiempo de ejecución, etc. Si necesita que los .jar sean lo más pequeños posible (por ejemplo, si desea poder hacer "klickstart" partes de la aplicación y no pierda el almacenamiento redundante) puede utilizar

Export... -> Runnable JAR File -> Copy required libraries into a sub-folder... 

hormiga a continuación, mantener una sola copia de las bibliotecas externas para todos los frascos. Sírvanse proporcionar más información sobre lo que su caso de uso es, por lo que podemos publicar respuestas más específicas :)

+0

El caso de uso es simple. Tengo un proyecto que consta de muchos marcos (bibliotecas externas, archivos fuente, etc.) y muchos archivos de clase (algunos de ellos con un método principal). Ahora quiero exportar cada una de las clases con un método principal en un archivo jar ejecutable. Luego, quiero cuantificar el tamaño de los diferentes frascos. Si utilizo Exportar como archivo Jar ejecutable, Eclipse coloca TODAS las clases del proyecto completo en ese archivo jar. Si utilizo Export Jar solo, el jar exportado no incluirá las bibliotecas requeridas, etc. Sé que el proyecto es un poco caótico, pero no lo he implementado, solo quiero analizarlo. – fachexot

0

probar esto, esta es la manera de crear un tarro o frasco ejecutable en Eclipse

File -> Export-> Java ->Runnbale JAR file 

Launch configuration : your Class containing the public static void main(String[] args) 

Export destination : Target place 

Library Handling: 

Package required libraries into generated JAR 

FINISH 
+0

Esta es la forma en que lo estoy haciendo ya. Lamentablemente, esto no resuelve mi problema ya que el archivo ejecutable contiene todos los archivos del proyecto completo de Eclipse. – fachexot

+0

@fachexot El mismo problema aquí ... ¿todavía no hay solución? – momomo

Cuestiones relacionadas