Ich plane, einen Jar-Befehl mit einem Jar, der in einem anderen Jar enthalten ist, auszuführen.Wie führe ich ein Glas aus einem Glas aus?
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
Datei enthalten ist in meiner main.jar
Datei als Ressource:
Der Befehl wird automatisch eine Java-JAR-Datei Code ähnlich verschleiern. config.xml
Datei ist ebenfalls enthalten.
Wie kann ich meinen Befehl ausführen, so dass er die enthaltene JAR-Datei ausführt?
Ordnerstruktur des main.jar:
- main.jar
|
|- main_class.class
|- lib/
|- allatori.jar
|- config.xml
|- jarToObfuscate.jar
* "wahrscheinlich müssten Sie es von Grund auf neu schreiben." * Siehe z. [Fat Jar] (http://fjep.sourceforge.net/) which * "Die One-JAR-Option integriert einen speziellen Class-Loader .. der JAR-Dateien in einem Jar verarbeitet." * & [JarClassLoader] (http: //www.jdotsoft.com/JarClassLoader.php) * "Der Klassenlader zum Laden von Klassen, nativen Bibliotheken und Ressourcen aus der obersten JAR und aus JARs innerhalb der obersten JAR." * nur ein paar der Top-Treffer bei einer Hauptsuche Engine .. –
Der einfachste Weg wäre wahrscheinlich, eine Kopie des Jar programmatisch zu erstellen, dann starte es mit Runtime.exec und lösche es danach. Was halten Sie davon? – Manitoba