Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Java] Problema Enumerazione runtime file class presenti in un jar

    Salve a tutti,
    la mia situazione è la seguente :
    ho un file jar contenente tutte le classi della mia applicazione strutturato più o meno così

    scrap
    ---dtdEditor
    -------gui
    -----------components

    e così via

    Ora il problema risiede nel fatto che non riesco ad elencare le classi che sono presenti nella directory components.
    Uso questo metodo , ma non riesco a risolvere
    codice:
    File files[]=new File(editor.getClass().getResource("components/").getFile()).listFiles(new MenuFilter());
    e la classe si trova nel package scrap.dtdEditor.gui .
    Purtroppo devo eseguire un caricamento dinamico , in quanto non so quali sono i file presenti.

    Qualche suggerimento???
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Qual è il problema che riscontri?
    Comunque, come suggerimento (che non so se funziona, non ho provato), potresti utilizzare il metodo getPath() al posto di getFile():
    codice:
    File [] files = (new File(editor.getClass().getResource("components/").getPath())).listFiles();
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Non va lo stesso... ho risolto con questo orrendo metodo
    codice:
     Enumeration e = null;
    
            ZipEntry ze;
    
            try{
    
              JarFile jf = new JarFile("SCRAP.jar");
              e = jf.entries();
            }
            catch(Exception rEx){} // failed to open
    
            files=new Vector();
            String base="scrap/dtdEditor/gui/components/";
            while(e.hasMoreElements()){
              ze = (ZipEntry)e.nextElement();
              String fileName = ze.getName();
              if(fileName.startsWith(base) && fileName.endsWith(".class") && !fileName.endsWith("Line.class") && !fileName.endsWith("ShapeMaker.class") )
                  files.add(fileName.substring(fileName.indexOf(base)+base.length()));
    
            }
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.