Visualizzazione dei risultati da 1 a 10 su 16

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Per ottenere la directory dell'applicazione puoi chiamare questo metodo all'interno di una tua classe:

    codice:
    String appDir = new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getParent();
    Non ho mai visto (ne usato, quindi) una cosa del genere. Però getLocation() ritorna un URL che immagino (per file su file-system) che sia con il file: protocol. Quindi ipotizzerei di trasformarlo in URI con toURI() e poi passare questo al costruttore di File.
    Ovviamente Lele, è tutta una ipotesi ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Sì, beh... sono andato molto a memoria di una cosa che avevo visto su SO, può essere che abbia scritto una castroneria... un metodo che uso e che funziona è questo:

    codice:
        private String getMyPath() {
            String str = getClass().getResource("NomeClasse.class").toExternalForm();
    
            int start = 0;
            int end = str.indexOf("NomeDelJar.jar");
            if ( str.startsWith("jar:") ) {
                start = 4;
            }
    
            if (str.indexOf("file:/") >= 0) {
                start += 6;
            }
            
            str = str.substring(start, end);
            str = str.replaceAll("%20", " ");
    
            return str;
        }

    Dove NomeClasse.class è il nome di una classe dell'applicazione e NomeDelJar.jar è il nome del file JAR che contiene l'applicazione... questo codice va adeguato alle situazioni: se, ad esempio, il JAR dell'applicazione è all'interno di una sub-directory, allora va adeguato di conseguenza il nome del jar, apponendovi davanti il nome della sub-directory. Insomma, ce la si gioca un po'.


    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

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.