2012-04-18 34 views
5

Planeo ejecutar un comando jar utilizando un jar incluido en otro jar.¿Cómo ejecuto un contenedor desde el interior de un contenedor?

El comando ocultar automáticamente un archivo JAR de Java utilizando un código similar a:

public void obfuscate() 
{ 
    try 
    { 
     String jre = "\"" + System.getProperty("java.home") + "\\bin\\javaw.exe" + "\""; 
     String jar = " -jar"; 
     Runtime.getRuntime().exec(new String[] { jre, jar.trim(), "/lib/allatori.jar /lib/config.xml" }); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 

allatori.jar archivo se incluye en mi archivo main.jar como un recurso. config.xml archivo también incluido.

¿Cómo puedo ejecutar mi comando para que ejecute el archivo jar incluido?

estructura de carpetas de main.jar:

- main.jar 
    | 
    |- main_class.class 
    |- lib/ 
     |- allatori.jar 
     |- config.xml 
     |- jarToObfuscate.jar 

Respuesta

1

Sin duda tendrá que descomprimirlo fuera del contenedor antes de ejecutarlo.

1

Claro. Cópialo afuera, crea un cargador de clases, encuentra la clase con la que quieres comenzar y listo. ¿En su lugar mientras todavía está allí? bueno, tendrías que escribir tu propio código para extraer los archivos de clase del archivo jar incrustado y ponerlos a disposición de un cargador de clases, probablemente tendrías que escribirlos desde cero.

+0

* "probablemente tendrías que escribirlo desde cero". * Ver para p. Ej. [Fat Jar] (http://fjep.sourceforge.net/) que * "La opción One-JAR integra un Class-Loader especializado ... que maneja archivos jar dentro de un jar." * Y [JarClassLoader] (http: //www.jdotsoft.com/JarClassLoader.php) * "El cargador de clases para cargar clases, bibliotecas nativas y recursos del JAR superior y de JAR dentro del JAR superior." * solo algunos de los principales resultados en una búsqueda importante engine .. –

+0

La forma más fácil probablemente sería crear una copia del jar programáticamente, luego ejecutarlo con Runtime.exec y eliminarlo después. ¿Qué piensa usted de eso? – Manitoba

Cuestiones relacionadas