Question

Lorsque vous exécutez un programme via la ligne de commande, vous pouvez utiliser java -Xms -Xmx pour spécifier les tailles de segment de mémoire. Si le programme doit être exécuté en double-cliquant sur un fichier .jar, existe-t-il un moyen d’utiliser plus de tas que le standard?

Était-ce utile?

La solution

Non. C'est pourquoi je crée souvent un fichier .bat ou .sh avec ces paramètres et demande aux utilisateurs de l'exécuter au lieu du fichier .jar. Malheureusement, il est un peu moche de devoir ouvrir une fenêtre d'invite de commande, mais rien ne peut y faire.

Si votre application se fige, vous pouvez également demander aux utilisateurs d'insérer pause dans le fichier de commandes (ou de le créer vous-même), puis vous pourrez voir toute trace de pile qui se produit.

Modifier: vous pouvez également utiliser un wrapper exécutable tel que JSmooth ou < a href = "http://launch4j.sourceforge.net/" rel = "noreferrer"> Launch4J au lieu d'un fichier de commandes. Cependant, vous perdriez un peu la compatibilité entre plates-formes.

Autres conseils

Au lieu de double-cliquer directement sur le fichier .jar, vous pouvez utiliser un fichier de commandes qui exécute java -jar -Xms -Xmx votre_fichier.jar . Du point de vue de l'utilisateur, c'est la même chose, mais cela vous donne plus de contrôle sur la commande qui est exécutée.

Vous pouvez faire en sorte que le fichier jar se redémarre avec Runtime.getRuntime (). exec () avec les options souhaitées. Le fichier jar peut contenir plusieurs méthodes main () (dans différentes classes) et vous pouvez appeler l’autre via un exec ().

Vous pouvez utiliser JSmooth ou un wrapper similaire, qui crée un fichier EXE qui lance la JVM avec le paramètres nécessaires. De cette façon, vous évitez d'avoir un fichier .bat et sa boîte de dialogue de console. Encore une autre méthode consiste à démarrer le programme dans un nouveau processus en utilisant Runtime.exec ou ProcessBuilder.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top