ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1097
1097
EMPFEHLEN
-
Hallo Leute
Ich habe bis jetzt einen Suchalgorithmus der mir einen Verzeichnisbaum als Tree anzeigt.
Da ich aber einen JarBrowser implementiere, muss ich die Jars mit Inhalt in den betreffenden Verzeichnissen anzeigen!
Mein Suchalgorithmus filtert nach JarFiles und speichert diese in einen Vector:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
public void recursiveJarSearch(String dirPath, Vector vecJarFile) { File resultFile = new File(dirPath); String[] arrContent = resultFile.list(); for (int j = 0; j < arrContent.length; j++) { try { String strSeparator = String.valueOf(File.separator); String path = dirPath + strSeparator + arrContent[j]; File dir = new File(path); [B]if (arrContent[j].endsWith(".jar"))[/B] { System.out.println("JarFile: " + path); vecJarFile.addElement(path); // JarFileOpener.searchClasses(); aufrufen! } else if (dir.isDirectory()) { String[] splittedStrArr = (path.split("\\\\|/")); // call show() and give show() the splitted element makeObject(splittedStrArr); recursiveJarSearch(path, vecJarFile); } } catch (Exception e) { e.printStackTrace(); continue; } } }
Ich hab nirgends was geeignetes gefunden - wie kann ich jetzt von diesem String die Jars auspacken?
Ich habe gedacht, dass ich eine Klasseerstelle, und in dieser das dann entpacke und in meiner vorhandenen Klasse TreeMakerCode :1
JarFileOpener
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
/** * Makes the Tree. Demonstrates the TreeViewer and shows the drives, * directories, and files on the system. */ public class TreeMaker extends ApplicationWindow{ //private TreeContentElement tce; //private TreeLabelProvider tlp; private SearchOverDirectories search; public ImageRegistry imageRegistry; /** * Treemaker constructor. */ public TreeMaker(Shell shell) { super(shell); search = new SearchOverDirectories(); search.recursiveJarSearch(search.rootDir, search.getVecJarFile()); } public static void main(String[] args) { ApplicationWindow treeMaker = new TreeMaker(null); treeMaker.setBlockOnOpen(true); treeMaker.open(); Display.getCurrent().dispose(); } // TODO: Weshalb baue ich den Tree mit Objekten auf? protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout(1, false)); // Create the tree viewer to display the file tree final TreeViewer treeViewer = new TreeViewer(composite); treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); treeViewer.setContentProvider(search.rootElement); treeViewer.setLabelProvider(new TreeLabelProvider()); treeViewer.setInput("root"); // pass a non-null that will be ignored getShell().setText("Jar Browser JB"); parent.setSize(640, 480); return parent; // return parent; } }
statt nur die Verzeichnis aufbaue auch noch die JarFiles!
MEINE FRAGE:
- wie entpacke ich die Jars anhand meinen Infos im Array?
- wie stelle ich das Ergebnis anhand meiner Klasse TreeMaker dar?
Sorry der lange Post...
Wenn jemand L&Z hat, wäre ich um eine Antwort auch mit Verweis auf ein anderes Beispiel sehr sehr dankbar!
Tinella
-
14.02.06 13:28 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Schau mal hier:
http://www.tutorials.de/forum/java/2...hlight=Archive
http://www.tutorials.de/forum/java/1...hlight=Archive
Gruss TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Hi Leute
Ein Object in ein File casten - geht das überhaupt?
(in meinem Fall habe ich den Typ des Objects selbst gemacht (TreeContentElement))
Ich habe einen Vector jarVec, gefüllt mit Objekten.
Da ich dem neuen JarFile Objekt aber ein File übergeben möchte, caste ich den Inhalt des Vectors (siehe unten).
Bevor ich entries aufrufe - muss ich da noch was anderes machen?
Code :1 2 3 4 5 6 7 8 9
public void extractJar() throws IOException{ File jar; for (int i = 0; i < jarVec.size(); i++) { jar = (File)jarVec.elementAt(i); JarFile jarFile = new JarFile(jar); System.out.println("jarFile entries: " + jarFile.entries()); } }
-
15.02.06 17:39 #4
Du durchläufst die Enumeration und zeigst z.B. den Name als neues Blatt im Tree an.
Falls Du Entpacken willst, dann etwa so:
Code :1
JarFile jarFile = new JarFile("webnobis.jar");JarEntry jarEntry = new JarEntry("WebNobis.java");InputStream in = jarFile.getInputStream(jarEntry);FileOutputStream out = new FileOutputStream(jarEntry.getName());int t;while((t = in.read()) != -1) out.write(t);}CU schnuffie
Fragliche Fragen stellende Fragensteller sind für verantwortungslose Antworten antwortender verantwortlicher Antworter selbst verantwortlich.
Ähnliche Themen
-
JARs des core-JRE übersteuern?
Von -ben- im Forum JavaAntworten: 0Letzter Beitrag: 09.12.09, 14:20 -
Problem mit JARS in WEB-INF/LIB
Von Frozenlife im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 13.04.08, 15:04 -
Maven und jars
Von Sirakov im Forum JavaAntworten: 5Letzter Beitrag: 01.04.08, 14:19 -
jars nachladen?
Von Smily0412 im Forum JavaAntworten: 1Letzter Beitrag: 13.02.08, 15:58 -
Name des ausführenden Jars
Von Moltar im Forum JavaAntworten: 2Letzter Beitrag: 31.05.07, 13:09





Zitieren

Login





