# JAVA Heapspace erhöhen -Xmx -Xms



## Tallan (14. Mai 2010)

Hi,
ich würde gerne beim starten meines Programms den Heapspace erhöhen.
Das Programm ist als ausführbare jar Datei kompliert und der Anwender sollte es nicht über die Shell aufrufen.
Gibt es eine möglichkeit die Heapspaceerhöhung in das Programm oder die Jarfile zu integrieren?
Als einzige alternative würde mir eine entsprechende Batch-Datei einfallen.


----------



## Marco13 (14. Mai 2010)

Sieht schlecht aus: Bug ID: 4682105 Mechanism to set heap size for executable JAR files


----------



## André Uhres (15. Mai 2010)

Tallan hat gesagt.:


> Gibt es eine möglichkeit die Heapspaceerhöhung in das Programm oder die Jarfile zu integrieren?


Mit "Runtime" einen dynamischen Neustart veranlassen und den Heapsize angeben. Beispiel:

```
public static void main(final String[] args) {
    long maxMemory = Runtime.getRuntime().maxMemory();
    if (maxMemory < 300000000) {
        String userdir = System.getProperty("user.dir");
        String cmd = "java -Xms300m -Xmx300m -jar \"" + userdir + "\\HeapDemo.jar\"";
        try {
            Runtime.getRuntime().exec(cmd);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.exit(0);
    }
    JOptionPane.showMessageDialog(null, "Heap " + Runtime.getRuntime().maxMemory());
}
```


----------



## Mike90 (16. Mai 2010)

Hallo,

oder du baust dir eine .bat Datei, die deine .jar mit den  Parametern aufruft.

In etwa so: 

```
start javaw -Xms100m -Xmx300m -jar "C:\app.jar"
```
 :rtfm:

Dann brauch der User halt nur diese .bat Datei anklicken und alles ist gut 
Oder halt einen Neustart, wie oben von André erwähnt! 

BG Mike90


----------

