Domanda

Quando si esegue un programma attraverso la riga di comando, è possibile utilizzare java -Xms -Xmx per specificare le dimensioni dell'heap. Se il programma verrà eseguito facendo doppio clic su un file .jar, esiste un modo per utilizzare più heap rispetto allo standard?

È stato utile?

Soluzione

No. Ecco perché creo spesso un file .bat o .sh con questi parametri e indirizzo gli utenti a eseguirlo invece del .jar. Sfortunatamente, è un po 'brutto dover aprire una finestra del prompt dei comandi, ma non può essere aiutato.

Come vantaggio secondario, se l'applicazione si blocca, puoi indirizzare gli utenti a inserire pause nel file batch (o farlo da solo), quindi puoi vedere qualsiasi traccia dello stack che si verifica.

Modifica: puoi anche utilizzare un wrapper eseguibile come JSmooth o < a href = "http://launch4j.sourceforge.net/" rel = "noreferrer"> Launch4J anziché un file batch. Perderesti un po 'di compatibilità multipiattaforma.

Altri suggerimenti

Invece di fare doppio clic direttamente sul file .jar, è possibile utilizzare un file batch che esegue java -jar -Xms -Xmx your_file.jar . Dal punto di vista dell'utente è lo stesso, ma ti dà più controllo sul comando effettivamente eseguito.

Puoi far riavviare il vaso con Runtime.getRuntime (). exec () con le opzioni che desideri. Il jar può contenere più di un metodo main () (in classi diverse) e puoi avere una chiamata l'altra tramite un exec ().

Puoi utilizzare JSmooth o un wrapper simile, che crea un file EXE che avvia la JVM con il parametri necessari. In questo modo puoi evitare di avere un file .bat e la sua finestra di dialogo della console. Ancora un altro modo è quello di avviare il programma effettivo nel nuovo processo utilizzando Runtime.exec o ProcessBuilder.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top