Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347

    Settaggi vari per applicazione java

    Allora, avrei un paio di domande:
    1) come si fa a settare un'icona al file .jar? (avete presente l'opzione di quei programmi che convertono il programma .jar in .exe, che ti permette di settare un'icona al .exe?? io vorrei fare proprio ciò ma non voglio assolutamente convertire il programma)
    2) si può evitare che il programma crei più istanze di se stesso?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Re: Settaggi vari per applicazione java

    Originariamente inviato da John360
    1) come si fa a settare un'icona al file .jar? (avete presente l'opzione di quei programmi che convertono il programma .jar in .exe, che ti permette di settare un'icona al .exe?? io vorrei fare proprio ciò ma non voglio assolutamente convertire il programma)
    Non si può, per ovvie ragioni... un file JAR non è un file eseguibile.

    2) si può evitare che il programma crei più istanze di se stesso?
    Certo: esistono diverse tecniche, già affrontate anche su questo forum

    1) Provare ad acquisire un lock su un file
    2) Provare ad aprire una ServerSocket su una porta specifica
    3) Usare librerie native

    La più efficace e portabile è la seconda.


    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
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    potresti spiegarmi la soluzione più semplice, o magari anche la seconda gentilmente?
    non conosco niente del genere, a parte forse il lock sul file(intendi il lucchetto che usano i thread??)
    EDIT: i file .jar creati con eclipse non sono degli eseguibili?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da John360
    potresti spiegarmi la soluzione più semplice, o magari anche la seconda gentilmente?
    non conosco niente del genere, a parte forse il lock sul file(intendi il lucchetto che usano i thread??)
    EDIT: i file .jar creati con eclipse non sono degli eseguibili?
    Nessun JAR è eseguibile (che lo crei Eclipse, NetBeans, BlueJ, io a mano)... è un archivio ZIP con l'estensione modificata... insomma, un file di dati come un altro.

    Per evitare che vengano aperte più istanze dello stesso programma è sufficiente che il programma, come prima cosa, apra una ServerSocket su una porta prestabilita.

    codice:
    public static void main(String[] args) {
       try {
          ServerSocket s = new ServerSocket( 31978 );   // Un numero (intero) di porta a caso
          ...   // Normale prosecuzione del programma
       } catch (Exception e) {
          // Eccezione... probabilmente c'è già un'istanza aperta
       }
    }
    La prima copia del programma che viene avviata, creerà la socket poichè la porta sarà (presumibilmente) libera, quindi proseguirà con la normale esecuzione.

    Le copie successive non riusciranno a creare la socket perchè la porta è già impegnata dalla prima copia, quindi verrà sollevata un'eccezione, che viene catturata e, semplicemente, ignorata... quindi il programma termina senza fare nulla.
    Si può anche mostrare un messaggio a video per informare l'utente che vi è già una copia del programma aperta, quello è solo un esempio piuttosto user-unfrendly.


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    ok, quindi basta che inserisco quelle poche righe di codice nel main?
    E per quanto riguarda l'icona, non c'è proprio nessun modo? Che ne so, tipo inserendo qualche file di configurazione abbinato ad un file immagine che dica a windows che non deve visualizzare la classica icona java ma il file immagine?

  6. #6
    Per l'icona devi convertire il jar in exe con un software per poi associargli l'icona.
    Io ho usato tempo fa launch4j che ti permette di fare tutto insieme.
    "Na' sedia te vojo tirà!"

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    si lo sapevo questo, ma come ho detto non voglio convertirlo

  8. #8
    Un file jar non ha icone al suo interno destinate al sistema operativo, anche perché non è detto che il jar venga utilizzato solo su Windows.
    La visualizzazione dell'icona associata al jar è strettamente legata alla personalizzazione del pc Windows che lo contiene.
    Non esiste quindi la possibilità di standardizzare questo aspetto, tranne quello di renderlo eseguibile dove è previsto (ovviamente sempre per Windows) che il file exe possa contenere una sua icona proprietaria.
    "Na' sedia te vojo tirà!"

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.