sarà sicuramente non funziona quando si inserisce questa opzione per il file JNLP. C'è una lista di opzioni consentite e le altre saranno ignorate. È possibile controllare l'elenco delle opzioni JVM disponibili nel documentation.
Si noti che l'idea è che l'utente finale eseguirà l'applicazione sul proprio computer. Cosa faresti con lo heap dump sul suo comp? Potrebbe essere chiunque nel mondo che esegue la tua app. Non avrebbe molto senso se tu fossi autorizzato a farlo con gli utenti finali JVM attraverso il tuo file JNLP.
L'unica situazione a cui posso pensare potrebbe essere l'accesso a tale computer e sarà possibile controllare la discarica in seguito. In questo caso (tu come utente finale richiedi il dump) in realtà è possibile ignorare l'esecuzione automatica del file jnlp dal browser ed eseguirlo da solo tramite il comando javaws
. I passi che ho preso e che portano al successo sono stati i seguenti (assumere il file JNLP era testOOM.jnlp
e siete su Windows):
- scarica il file JNLP
- dalla riga di comando passare alla directory con il file di
- JNLP eseguire
javaws -verbose -J-XX:+HeapDumpOnOutOfMemoryError testOOM.jnlp
Utilizzando questa l'applicazione sarà lanciata nello stesso modo dal browser. Notare l'opzione -J
che consente di fornire opzioni JVM alla JVM. Questo è ok perché è il client utente di ebd che ha richiesto il dump.
Sulla OutOfMemoryError
l'heap dump saranno conservati nella stessa directory in cui si esegue il comando di javaws
da.
fonte
2011-03-10 12:33:55
Quali risultati si ottengono quando si esegue il programma con tali opzioni? – Davidann
poiché ciò comporta la manipolazione del computer del client (scaricamento di un file sul computer locale). non sarei sorpreso se ci sono controlli di sicurezza intorno a questa opzione. potrebbe essere completamente negato o potrebbe richiedere autorizzazioni aggiuntive. – jtahlborn
Hai provato anche a specificare il percorso aggiungendo per esempio '-XX: HeapDumpPath =/tmp'? –