Robert: Heapgröße in MANIFEST.MF vorgeben möglich

Hallöle,

ich hab ein Javaprogramm, das große Files bearbeitet und dabei entsprechend viel Platz auf dem Heap benötigt.
Das ganze ist als jar gepackt, mit MANIFEST.MF drin, in dem die Startklasse definiert ist.
Dadurch ließe sich - entsprechende Konfiguration des Systems vorausgesetzt - das Programm per Doppelklick auf das Jar-File starten.
Bzw. einfach per
java -jar MeinProgramm.jar

Wegen des hohen Speicherbedarfs braucht java aber noch einen Parameter, -Xmx200m (ich sagte ja: große Files).

Damit klappt es aber nicht mehr, das Programm per Doppelklick aufs Jar zu starten. Ich könnte mein (Windows-)System so konfigurieren, daß für Jar nicht
java -jar %1
sondern
java -Xmx200m -jar %1
benutzt wird - aber für andere Javaprogramme will ich die Einstellung nicht. Und wenn das Programm auf einem anderen System laufen wird, fehlt dann der Parameter auch wieder.

Gibt es die Möglichkeit, diesen Parameter in der MANIFEST.MF festzulegen, so wie ja auch die Start-Klasse festgelegt werden kann?

Oder muß ich ein Script (.bat unter Windows) für jedes mögliche System basteln?

cu,
Robert

  1. Hi,

    java -Xmx200m -jar %1
    Gibt es die Möglichkeit, diesen Parameter in der MANIFEST.MF festzulegen, so wie ja auch die Start-Klasse festgelegt werden kann?

    Sieht nicht so aus: http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html#Manifest Specification

    Oder muß ich ein Script (.bat unter Windows) für jedes mögliche System basteln?

    Vermutlich ja.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Oder muß ich ein Script (.bat unter Windows) für jedes mögliche System basteln?

    Hallo!

    falls das mit dem Manifest nicht geht, gibt es noch eine andere Möglichkeit ohne Skripte:
    Eine kleine Java Anwendung, die mit der exec() Methode der Klasse Runtime die eigentlich Anwendung mit dem Parameter startet...

    Die Starteranwenung kann in der selben Jar Datei sein, und ist im Manifest als Mainclass eingetragen.

    Mit etwas Geduld kann man das (vermutlich) so hinbekommen, dass es auf allen/den meisten(??) Plattformen funktioniert.
    Scheint mir schöner als die Lösung mit den Scripten (wenn auch mit viel Herumprobieren verbunden).

    Dominik