Wenn Sie ein Programm über die Befehlszeile ausführen, können Sie java -Xms -Xmx
verwenden, um die Heap-Größen anzugeben. Wenn das Programm durch Doppelklicken auf eine .jar-Datei ausgeführt wird, gibt es eine Möglichkeit, mehr Heap als den Standard zu verwenden?Weisen Sie einem Java-Jar mehr Heap-Speicher zu
Antwort
Nein. Deshalb mache ich oft eine .bat oder .sh-Datei mit diesen Parametern und direkte Benutzer, um es statt der .jar auszuführen. Leider ist es ein wenig hässlich, ein Eingabeaufforderungsfenster zu öffnen, aber das kann nicht geholfen werden.
Als Nebeneffekt, wenn Ihre Anwendung einfriert, können Sie Benutzer anweisen, pause
in die Batch-Datei (oder do it yourself) zu setzen, und dann können Sie jede Stapelverfolgung, die auftritt.
Edit: Sie könnten auch eine ausführbare Wrapper wie JSmooth oder Launch4J anstelle einer Batch-Datei verwenden. Sie würden jedoch einige plattformübergreifende Kompatibilität verlieren.
Anstatt direkt auf die .jar-Datei doppelzuklicken, können Sie eine Stapeldatei verwenden, in der java -jar -Xms -Xmx your_file.jar
ausgeführt wird. Aus der Sicht des Benutzers ist es das gleiche, aber es gibt Ihnen mehr Kontrolle über den tatsächlich ausgeführten Befehl.
+1 für die gleiche Antwort, die ich tat. :) –
Sie können JSmooth oder einen ähnlichen Wrapper verwenden, der eine EXE-Datei erstellt, die die JVM mit den erforderlichen Parametern startet. Auf diese Weise können Sie vermeiden, dass eine .bat-Datei und ihr Konsolendialogfeld vorhanden ist. Noch ein weiterer Weg besteht darin, das eigentliche Programm im neuen Prozess mit Runtime.exec oder ProcessBuilder zu starten.
Sie können das Jar erneut mit Runtime.getRuntime() .exec() mit den gewünschten Optionen starten lassen. Das jar kann mehr als eine main() -Methode (in verschiedenen Klassen) enthalten und Sie können den anderen über eine exec() aufrufen.
Eine weitere gute Option (obwohl es nicht so einfach ist herauszufinden, wieviel Speicher verfügbar ist). +1 –
- 1. Weisen Sie einem Label ein Systemicon zu
- 2. Weisen Sie SKCropNode mehrere Masken zu
- 3. So erhöhen Sie den Heapspeicher für Wildfly
- 4. Wie weisen Sie einem Benutzer in MVC5 eine Rolle zu?
- 5. So weisen Sie einem Elementattribut JavaScript-Funktion zu
- 6. Weisen Sie String-Array-Elementen in einem Spinner Werte zu
- 7. So weisen Sie einem assoziativen Array einen Wert zu
- 8. So weisen Sie einem Gast eine Rolle und Berechtigungen zu
- 9. Weisen Sie bestimmten PHP-Variablen Werte aus einem Array zu
- 10. Weisen Sie einen Delegaten basierend auf einem Typ zu?
- 11. Weisen Sie einen Std :: Vektor zu einem Std :: Valarray
- 12. Jquery: So weisen Sie einem Funktionsaufruf einen JSON-Wert zu
- 13. Weisen Sie einem einzelnen Befehl mehrere Emacs-Tastenbindungen zu?
- 14. Wie weisen Sie einem Menüeintrag in Eclipse einen Hotkey zu?
- 15. Weisen Sie JavaScript-Funktion zu einem DOM-Element
- 16. So weisen Sie einen zufälligen Int einem JButton zu
- 17. Basisklassenreferenz - weisen Sie einen anderen Typ zu
- 18. Weisen Sie Array von Zeigern zu Array
- 19. So löschen Sie den Heapspeicher von Eclipse
- 20. Weisen Sie eine Rolle mit FosUserBundle zu
- 21. Weisen Sie der Variablen
- 22. Weisen Sie mehreren Variablen denselben Wert zu
- 23. Wie weisen Sie Docker-Containern Hostnamen zu?
- 24. Weisen Sie jedem Radiobutton Funktion zu
- 25. Wie weisen Sie Fremdschlüssel in DynamoDB zu?
- 26. .NET-Prozessspeicherauslastung = 5x CLR-Heapspeicher?
- 27. Weisen Sie der Variablen
- 28. So weisen Sie Daten zu einem benutzerdefinierten Tabellentyp zu Wählen Sie Abfrage in SQL Server 2014
- 29. Weisen Sie eine Seriennummer zu, wenn die Menge mehr als eins ist.
- 30. Weisen Sie dem MultiIndex DataFrame neue Werte zu
@mmyers: Verflucht deine schnellen kleinen Finger! Bewerte mich um 54 Sekunden! – Welbog
Entschuldigung, ich sehe, dass Sie damit beschäftigt waren, die Frage zu bearbeiten. (Ich denke, das ist das erste Mal, dass jemand meine schnellen kleinen Finger verflucht hat ...) –
Sie könnten auch etwas wie JSmooth verwenden: http://jsmooth.sourceforge.net/ – millimoose