Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480

    Problema percorso assoluto o percorso relativo

    Ciao a tutti,
    ho creato una procedura di installazione per il software che ho realizzato.
    Sto riscontrando un problema relativo al percorso di una sottocartella del progetto:
    Nella cartella del progetto è contenuta una sottodirectory dove sono presenti altre sottodirectory con dei file .txt che utilizzo nel software
    Esempio: C:\PVE\dirIniziale\Europe\Stoccolma\Classic\May.tx t

    Fin qui tutto bene se ovviamente vado ad eseguire il software da netbeans.

    Il problema lo riscontro quando vado a creare il file .exe, infatti nella procedura di installazione viene data all'utente l'opportunità di scegliere dove creare la cartella dell'applicazione.
    Per esempio se vado ad inserirla nella cartella "Programmi", allora il path diventa:
    C:\Program Files\PVE\dirIniziale\Europe\Stoccolma\Classic\May .txt

    Nel codice java, faccio riferimento a questa cartella in questo modo (per esempio)
    codice:
    File dir = new File("dirIniziale\\Africa-Asia");
    quindi parto sempre da "dirIniziale" e credevo andasse bene perchè un percorso relativo.
    Invece non riesco a fargli vedere questa cartella:
    Dove sbaglio? Che tipo di percorso dovrei utilizzare per far in modo che l'utente possa installare il software in qualsiasi posizione all'interno del sistema ?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Nel codice java, faccio riferimento a questa cartella in questo modo (per esempio)
    codice:
    File dir = new File("dirIniziale\\Africa-Asia");
    quindi parto sempre da "dirIniziale" e credevo andasse bene perchè un percorso relativo.
    Invece non riesco a fargli vedere questa cartella:
    Dove sbaglio?
    Percorsi "assoluti" cablati nei sorgenti, assolutamente no, non ci vanno (se non per test/prove iniziali o fatte al volo).
    Percorsi "relativi" sì, vanno bene ma .... se sono relativi lo sono rispetto a qualcosa. Di per sé, un percorso relativo viene visto da File come relativo alla directory "corrente", che è semplicemente quella che è corrente nel momento in cui la JVM viene lanciata (ogni processo nativo ha il concetto di directory corrente).

    Quindi: puoi fare in modo che la esecuzione della tua applicazione sia tale per cui la directory corrente si corretta per fare da "base" alla tua "dirIniziale" ? Questo dipende solo da chi/come lancia la applicazione.

    Se la applicazione viene sempre lanciata con java -jar, allora il pathname del jar è facilmente rintracciabile.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da andbin Visualizza il messaggio

    Quindi: puoi fare in modo che la esecuzione della tua applicazione sia tale per cui la directory corrente si corretta per fare da "base" alla tua "dirIniziale" ?
    Quindi, la soluzione sarebbe quella di impostare nella procedura di installazione un path predefinito e non modificabile da parte dell'utente ?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Quindi, la soluzione sarebbe quella di impostare nella procedura di installazione un path predefinito e non modificabile da parte dell'utente ?
    No ... anche modificabile (selezionabile dall'utente in fase di installazione)! Purché poi il link/collegamento creato dall'installer sia corretto per far sì che la directory corrente sia quella appropriata. È poi tutto lì ... si tratta solo di stabilire le cose ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Purché poi il link/collegamento creato dall'installer sia corretto per far sì che la directory corrente sia quella appropriata.
    Per l'appunto, come faccio a dirgli che la directory corrente è quella giusta????...questo non capisco..

    Per esempio se eseguo l'applicazione da Netbeans allora viene eseguito perfettamente facendo riferimento alla cartella giusta.
    Se invece lo eseguo facendo doppio-click dal jar nella cartella "dist" del progetto, non vede la cartella.
    (quindi è una questione che va al di fuori del file eseguibile creato con la procedura di installazione).

    C'è un modo per risolvere ?
    Ultima modifica di roquentin; 20-04-2015 a 15:03

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Per l'appunto, come faccio a dirgli che la directory corrente è quella giusta????
    Ma dipende da quale tool hai usato per creare l'installer nativo ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Scusate se mi intrometto, ma non dovrebbero pure esserci problemi legati ai diritti?
    Intendo se il programma viene installato sotto Program Files, il programma dovrebbe lavorare con diritti amministrativi altrimenti non riesce a scrivere(se hai questa necessità) sotto la suddetta directory, non ho la certezza assoluta ma dovrebbe essere così.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Ma dipende da quale tool hai usato per creare l'installer nativo ....
    Ho utilizzato Install Creator, ma non so se dipenda da questo, poichè come ho detto anche facendo doppiclick sul jar del progetto mi da lo stesso problema...o no?

    Per esempio nel codice ho:
    codice:
    ...
     File dir = new File("dirIniziale\\Africa-Asia");
                DefaultComboBoxModel modello = new DefaultComboBoxModel();
                for (File f : dir.listFiles()) {
                    modello.addElement(new FileItem(f));
                }
                menuCitta.setModel(modello);
    ...
    all'interno di un ActionPerformed di un JButton e dovrebbe popolarmi la JComboBox con i nomi di tutte le città contenuta in "dirIniziale\\Africa-Asia" ma al di fuori di netbeans..non lo fa!
    Ultima modifica di roquentin; 20-04-2015 a 17:35

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    Scusate se mi intrometto, ma non dovrebbero pure esserci problemi legati ai diritti?
    Intendo se il programma viene installato sotto Program Files, il programma dovrebbe lavorare con diritti amministrativi altrimenti non riesce a scrivere(se hai questa necessità) sotto la suddetta directory, non ho la certezza assoluta ma dovrebbe essere così.

    Ciao.
    Ciao schumy, non so se è come dici tu, poichè ho lo stesso problema anche eseguendo il software dal jar.

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Ho utilizzato Install Creator, ma non so se dipenda da questo
    Su Windows, se apri le "proprietà" di un qualunque "collegamento" (che puoi trovare es. su desktop o in start/programmi), ci trovi un campo "Da". Quella è la directory che sarà "corrente" quando la destinazione (in questo caso un .exe) verrà aperta tramite il collegamento.

    Il tool che hai citato, è in grado di poter fare una logica del tipo: "quando durante il setup l'utente specifica una directory di installazione X, quando poi crei le icone/collegamenti metti la specifica della directory a X"
    ??

    Io non lo so ...... (non lo conosco quel tool)


    P.S. Verifica ma se non sbaglio se quel "Da" è vuoto la directory corrente è quella dove c'è il collegamento. E potrebbe essere questo che ora non ti permette di lanciare correttamente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.