2016-12-01 4 views
0

Ich bin eine Linie in Java schreiben zu laufen JAR-Datei von Ressourcen im laufenden Betriebwie Mainclass der JAR-Datei aus Ressource aufgerufen laden

i erhält zuerst das Glas füllt

// create FileInputStream object 
InputStream fileInputStream = TestCL.class.getResourceAsStream("test.jar"); 

erstellen Bytedatenfeld

byte rawBytes[] = new byte[fileInputStream.available()]; 

Zum Inhalt der Datei in Byte-Array

fileInputStream.read(rawBytes); 

zu lesen, wie ich

Hauptklasse von dieser Fileinputstream lade

dies mein Test-Methode von Klasse zu nennen, i, wie kann dieses Beispiel mit JAR-Datei machen?

+0

, welche Art von "load"? Als brauchbare Klasse über 'ClassLoader' laden oder die Bytes laden? (ein Glas ist eine Zip-Datei, können Sie einfach alte Postleitzahl verwenden, um in sie zu suchen) – zapl

+0

ys bro, mit ClassLoader aber ohne Datei in HDD erstellen und rufen Sie mit URL oder andere – joseph

+0

Werfen Sie einen Blick auf https: // docs. oracle.com/javase/tutorial/deployment/jar/jarclassloader.html - die 'URL' könnte' TestCL.class.getResource ("test.jar") 'sein, da bin ich mir nicht sicher. Es muss auch sein, dass du diese URL mit 'jar' voranstellen musst: ' – zapl

Antwort

0

Versuchen Sie, die Klasse zu laden und rufen Sie die Hauptmethode auf oder versuchen Sie einfach, sie von cmd auszuführen.

diesen Code Versuchen:

Class<?>[] cArgs = new Class[1]; 
    cArgs[0] = java.lang.String.class; 
    URL url = new URL("// enter the .jar path"); 
    URL[] urls = new URL[] { url }; 
    ClassLoader cl = new URLClassLoader(urls); 
    InputStream fileInputStream = cl.getResourceAsStream("test.jar"); 
    Method mainMethod = cl.loadClass("//enter class name").getMethod("main", cArgs[0]); 
+0

ok, wie kann ich die Hauptklasse bekommen? Ich beschäftige mich mit InputStream obj – joseph

+0

schauen Sie meine Testklasse bro – joseph

Verwandte Themen