Visualizzazione dei risultati da 1 a 10 su 26

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Allora, scusa ma partiamo da un dato: in qualunque modo sia installata (e senza considerare ora i collegamenti creati), se vai da console nella directory "giusta" e avvii la tua applicazione ... funziona oppure no?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Allora, scusa ma partiamo da un dato: in qualunque modo sia installata (e senza considerare ora i collegamenti creati), se vai da console nella directory "giusta" e avvii la tua applicazione ... funziona oppure no?
    Ok ho fatto:
    codice:
    C:\>java -jar "C:\Program Files\PVE\dist\PVE.jar
    dal prompt (questo è il jar nella cartella creata dopo la procedura di installazione) ed apre l'applicazione correttamente.

  3. #3
    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
    codice:
    C:\>java -jar "C:\Program Files\PVE\dist\PVE.jar
    ed apre l'applicazione correttamente.
    Ma qui la directory corrente è "C:\" ... non la dist
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Ma qui la directory corrente è "C:\" ... non la dist
    Ciao andbin,
    ho utilizzato un altro tool che mi permette di creare proprio un file .exe il software.
    Ovviamente nella procedura di installazione del software viene chiesto all'utente il destination folder, per esempio:
    codice:
    C:\PVE Software\PVE 1.0
    quindi mi ritrovo con lo stesso problema di cui sopra (nel senso che il problema ovviamente non dipende se il file finale per l'esecuzione del software sia un .jar o .exe). Il problema del riferimento alla cartella "dirIniziale" ovviamente permane.
    Esempio nel codice:
    codice:
    File dir = new File("dirIniziale\\Europe");
                DefaultComboBoxModel modello = new DefaultComboBoxModel();
                for (File f : dir.listFiles()) {
                    modello.addElement(new FileItem(f));
                }
                menuCitta.setModel(modello);
    ove "dirIniziale" è contenuta nella cartella principale del progetto.

    cioè la cartella del progetto contiene le cartelle : "build", "dirIniziale", "dist", "lib", ecc...

    Ho pensato di modificare tutti i percorsi relativi (riferiti a "dirIniziale") nel codice (per esempio) da:
    codice:
    File dir = new File("dirIniziale\\Europe");
    a

    codice:
    File dir = new File("dist\\dirIniziale\\Europe");
    cioè considerare la directory "dirIniziale" come sottocartella di una directory del progetto.

    Oppure, considerare nella creazione della procedura di installazione (utilizzando il tool) un absolute path, in modo tale che tutta la cartella del progetto mi venga installaza in C: e credo di risolvere in questo modo.

    Cosa mi suggerisci?

    Grazie

  5. #5
    Che confusione.
    Io al posto tuo semplicemente avrei messo i documenti sotto un package (es. initdocuments) e usato la funzione fatta prima per le immagini.

    codice:
    package initdocuments;
    import java.io.InputStream;
    
    public class Resources {
        private Resources() {}
        
        public static InputStream getFileAsStream(String name) {
            return AppResources.class.getResourceAsStream(name);
        }
    }

    Già che se tu avessi fatto una gestione più intelligente dei package ti saresti risparmiato di fare un'altra classe.
    Invece di fare il package "immagini"(http://forum.html.it/forum/showthrea...adid=2924734#3), avresti potuto fare package resource e fatti un sotto package con immagini e l'altra con document e poi scrivere semplicemente nel recupero delle immagini o dei documenti:

    Resource.getIconURL("img/immagine.jpg")
    oppure
    Resource.getFileAsStream("doc/Asia.txt")

    Evitandoti tutti sti problemi di incastramento dei path.

    Ciao.
    Ultima modifica di schumy2000; 21-04-2015 a 12:41
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    Che confusione.
    Io al posto tuo semplicemente avrei messo i documenti sotto un package (es. initdocuments) e usato la funzione fatta prima per le immagini.

    codice:
    package initdocuments;
    import java.io.InputStream;
    
    public class Resources {
        private Resources() {}
        
        public static InputStream getFileAsStream(String name) {
            return AppResources.class.getResourceAsStream(name);
        }
    }

    Già che se tu avessi fatto una gestione più intelligente dei package ti saresti risparmiato di fare un'altra classe.
    Invece di fare il package "immagini"(http://forum.html.it/forum/showthrea...adid=2924734#3), avresti potuto fare package resource e fatti un sotto package con immagini e l'altra con document e poi scrivere semplicemente nel recupero delle immagini o dei documenti:

    Resource.getIconURL("img/immagine.jpg")
    oppure
    Resource.getFileAsStream("doc/Asia.txt")

    Evitandoti tutti sti problemi di incastramento dei path.

    Ciao.
    Ciao schumy, purtroppo la cartella "dirIniziale" non è proprio come la cartella immagini che contiene solo file .jpg .png o .gif.
    Questa cartella contiene altre sottocartelle di cui faccio uso differente, questa contiene altre 2 sottocartelle:
    "Africa-Asia" e "Europe" che a loro volta contengono entrambe le sottodirectory delle città, che a loro volta contengono altre due sottocartelle , che a loro volta contengono file .txt.

    Ecco alcuni utilizzi che ne faccio nel mio codice:
    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);
    per popolare la JComboBox con i nomi delle città di "Africa-Asia" (nomi che vengono presi dai nomi delle sue sottodirectory di 1° ordine)

    codice:
    File dir = new File("dirIniziale\\Europe");
                DefaultComboBoxModel modello = new DefaultComboBoxModel();
                for (File f : dir.listFiles()) {
                    modello.addElement(new FileItem(f));
                }
                menuCitta.setModel(modello);
    per popolare la JComboBox con i nomi delle città di "Europe"

    in altre parti del codice vado ad utilizzarla così:
    codice:
    File dir = new File("dirIniziale\\" + pathname.getContinente() + File.separator + pathname.getCitta());
    fileIrr = (dir + File.separator + pathname.getData() + File.separator + "Radiation.txt");
    ecc..


    Come vedi non si tratta solo di estrarre i file come per il package immagini..credo che la situazione sia un pò differento , no?

  7. #7
    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
    Come vedi non si tratta solo di estrarre i file come per il package immagini..credo che la situazione sia un pò differento , no?
    Sì, la situazione è un po' differente rispetto a singole e semplici "risorse" (es. icone/immagini).

    Ma secondo me stai continuando a girare attorno ad un falso problema. Se nel codice vuoi fare riferimento a file o directory con una specifica relativa, che quindi di per sé è risolta rispetto alla directory corrente, allora la cosa più semplice (e che non richiede modifiche o codice extra) è stabilire e richiedere che chiunque avvii la applicazione, lo faccia avendo come directory corrente quella "giusta" per far funzionare l'applicazione.

    Se l'utente vuole lanciare "a mano" l'applicazione, saranno affari suoi assicurare questo.
    Se è avviata da un collegamento che è stato installato con un sistema di setup, la directory è appunto controllabile, cioè i collegamenti vanno creati appositamente in modo corretto.

    Tutto qui.
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.