Originariamente inviato da Alex'87
La differenza principale è che su mac ogni applicazione (tranne rarissime eccezioni) può essere in esecuzione una volta sola (in pratica sono tutte dei singleton..)! Cerco di spiegarmi: avvio il programma A e lo lascio in esecuzione. Se poi cerco di lanciare di nuovo lo stesso programma A facendo doppio click sull'icona in realtà quello che ottengo è l'istanza precedente del programma, non ne apro un'altra! (non so se mi sono spiegato).
Ecco, questa non la sapevo proprio. Ora mi è più chiaro (ed è sensato) il motivo di quella libreria.
Per quanto concerne ambienti come Win/Linux, dove ogni volta viene avviata una nuova istanza dell'applicazione, le cose funzionano. Ho appena generato un EXE (usando JSmooth) di questa mia piccola ed inutile applicazione, e funziona alla perfezione:
codice:
import javax.swing.*;
public class Esegui {
public static void main(String[] args) {
if (args.length > 0) {
JOptionPane.showMessageDialog(null, "File da aprire: " + args[0]);
} else {
JOptionPane.showMessageDialog(null, "Nessun file da aprire!");
}
}
}
Trascinandoci sopra un file, compare correttamente il messaggio con l'indicazione del file da aprire.
Ciao.