# jar mit Befehl zur Vergrößerung des VM-Speichers



## Thunderhit (20. Feb 2007)

meine java Anwendung braucht mehr Speicher als standardmäßig, nutze daher den Befehl -mx320m damit sie reibungslos funktioniert, nur will ich die normal wie es der Sinn der jar ist, sie über den Doppelklick starten. Muss ich dann -mx... in die manifest hinzufügen, damit zusätzlicher Speicher zu Verfügung steht? Wenn ja wie genau? Denn jedesmal das über die Console zu machen ist nicht Sinn der Sache, vor allem wenn man die mal jemand anders gibt.


----------



## Lim_Dul (20. Feb 2007)

Geht leider so einfach nicht. Am einfachsten wird es sein ein Startskript beizulegen (.bat für Windows, bash Script für Linux), dass den entsprechenden Parameter setzt.

Im Manifest kannst du das leider nicht festlegen, da das erst nach dem Starten der VM gelesen wird.

Alternativ könntest du im JAR File einen Java Programm starten, dass nichts anderes macht, als dein eigentliches Java Programm aufzurufen. Allerdings hab ich davon keine Ahnung, wie man das sauber plattformunabhängig hinbekommt.


----------



## Thunderhit (21. Mrz 2007)

Da bei ner bat das Problem ist, dass das Fenster die ganze Zeit vorhanden ist versuchte ich mich an der jar startet jar Methode. Nur so richtig klappt es nicht, wollte es in einem neuen Thread mit

Desktop.getDesktop().open(new File("java -jar -mx320m"+location));

starten, aber er findet es nicht, ohne das im "" funktioniert es, nur wie starte ich die jar mit zusätzlichen parametern?


----------



## the_alien (21. Mrz 2007)

Leerzeichen am Ende der ""?


----------



## Thunderhit (21. Mrz 2007)

Ah, Fehler beim eintragen hier, aber leider nein, hab die Zeile auch ohne variable geschrieben 
"java -jar -mx320m test.jar", selbes Ergebnis...


----------



## The_S (22. Mrz 2007)

So evtl.!?


```
public class StartJar {

	public static void main(String[] args) throws IOException{
		
		Runtime.getRuntime().exec("javaw -jar -mx320m Test.jar");
	}
}
```

Wäre dann auch vor Java 6 möglich!

(ungetestet)


----------



## thE_29 (22. Mrz 2007)

Gehört da nicht -Xmx?


----------



## The_S (22. Mrz 2007)

Joa, eigentlich schon, aber ich hab halt mal die Parameter vom Threadsteller übernommen  .


----------



## Thunderhit (22. Mrz 2007)

hat funktioniert, danke

edit: wenn ich mein Programm über die jar starte geht alles normal, nur wenn ich es über Alt+F4 beende bzw. über das Kreuz, dann ist der java Prozess noch im prozess explorer zu sehen und verbraucht noch die selbe Menge speicher wie vor dem schließen. Woran liegt das? Ich dachte dass der Prozess bzw. die Anwendung aus dem Speicher entfernt wird wenn sie geschlossen wird?
Ich habe eine SWT Oberfläche und lade recht große Objekte in den Speicher, daher der zusätzliche, nur wenn ich auf das Kreuz geh müsste der doch das alles beenden?!


----------



## The_S (23. Mrz 2007)

Naja, nur weil die Benutzeroberfläche geschlossen wird, heißt das noch lange nicht, dass das Programm nicht mehr läuft! Von SWT hab ich keine Ahnung, aber für ein JFrame in Swing gibts sowas wie


```
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
```


----------



## Gast (29. Jun 2007)

hj


----------



## NTB (29. Jun 2007)

Mal am Rande:
Wenn man in der Batchdatei "javaw.exe" verwendet, bleibt auch kein DOS Box Fenster offen.


----------

