Speicherzuweisung der JVM

Status
Nicht offen für weitere Antworten.

cra

Mitglied
Hallo zusammen

Bei einem JAVA-Programm, mit welchem ich grosse Bilder lade, habe ich das Problem, dass ich zuwenig Speicher von der JVM zur Verfügung gestellt bekomme.

Durch aufrufen mittels java -jar -Xms128M -Xmx1024M MeinProgramm.jar konnte ich dieses Problem umgehen.

Gibt es eine Möglichkeit, diese "Speichererweiterung" zur Laufzeit zu erlangen, oder direkt im JAR zu deklarieren, dass ich gerne mehr Speicher möchte, als Standardmässig vergeben wird?

Sollte diese Frage zu den Basics gehören, so bitte ich schonmal vorab um Entschuldigung und um verschiebung.

Besten Dank im Voraus
Viele Grüsse
CRA
 
G

Gelöschtes Mitglied 5909

Gast
nein das geht nicht zur Laufzeit. Wenn dir der Aufruf so lästig ist, schreib ne batch / shell file.
Ansonsten könnte man mal schauen, ob du wirklich so viel speicher brauchst, oder es einen weg gibt der weniger brauch
 

cra

Mitglied
Hallo raiL

Danke für die Antwort. Für Windows habe ich mit JSmooth ein EXE gebastelt, welches die Speicher-Bereiche einstellt und das funktioniert auch tadellos. Nun habe ich noch das Problem, dass ich sowas wie JSmooth für MAC noch nicht gefunden habe.

Ob es mit weniger Speicher geht, bezweifle ich, da das Programm ein Bild (JPG bis 12MB) lädt und es anschliessend verkleinert auf Grösse 1 (vordefiniert), dort ein zweites Bild (paar hundert kilo) lädt, dies darüberlegt und anschliessend den verbund speichert, das Originalbild nochmal verkleinert und nochmal speichert (Thumbnails mit und ohne Overlay und zwei grössen). Ist dies durch, wird das Nächste Bild verarbeitet.

Speicherlecks habe ich *glaub* keine, da wenn ich zuwenig Speicher zuweise, bereits beim ersten ein Heap-Fehler erscheint ... und wenn ich mehr zuweise, dass es beim ersten klappt, dann klappt's auch mit 100 Bildern.

Eine Lösung dieses Problems wäre auch, wenn es etwas vergleichbares wie JSmooth mit dem exe für den MAC gibt ... ich kann dem Endanwender einfach nicht zumuten, das Programm aus dem Terminal mit den Speicher-Befehlen zu starten ;)

Danke für euere Hilfe
Gruss CRA
 

andre111

Bekanntes Mitglied
Naja für Windows kannste eine Batch-Datei schreiben, die die .jar mit den passenden Parametern aufruft. Da muss der Benutzer auch nur Doppelklicken.
 

X3TitanCore

Bekanntes Mitglied
Auf dem MAC gibt es die PackageMaker App und die Jar Bundler App in den Developer Utilities. Dort brauchst Du kein JSmooth um ein Executable zu bauen. Ist alles schon dabei.

Gruß
Dirk
 
M

maki

Gast
In so einem Fall ist es üblich, Shell Skripte für die jeweilige Plattform mitzugeben.
 

cra

Mitglied
Ich hab leider nur sporadisch einen Mac zur Verfügung. Wie geh ich da am besten Vor? Was ist das Einfachste und für den Endbenutzer am komfortabelsten?

Gibt's dazu HowTo's / Docs oder habt ihr Beispiele?
Danke und Gruss
 

cra

Mitglied
Die Jar Bundler App-Methode klingt interessant ... gibt's dazu auch eine Windows-Version? Oder gibt's eine Möglichkeit, Mac OS X auf einem Windows-PC zum laufen zu bringen, Stichwort VMWare?
 
M

maki

Gast
Man darf MacOS gar nicht auf irgendetwas anderem (inkl. einer virtuellen Maschine) als einem Mac installieren & laufen lassen, daher erübrigt sich die Frage wohl.
 

ice-breaker

Top Contributor
Diese Lizenzbedingung ist aber vor dem Kauf nicht einsehbar und somit in Deutschland nicht gültig, nur so am Rande ;)

Die meisten Programme, die eine Jar in ein exe-Bundle wrappen erlauben noch extra Parameter, da brauchst du nicht irgendwie komplex Mac OS zu emulieren.
 

X3TitanCore

Bekanntes Mitglied
Hab meine letzte Javaanwendung für den MAC mit dem Package Maker gepackt. Das hat gut funktioniert und sieht für den User aus als wenn er eine normale Anwendung installiert. Vorher kannst du ein jar aus deiner Anwendung machen.
 

cra

Mitglied
Package Maker läuft nur auf einem Mac oder?

Gibt's eine Variante, das ab einem Windows Tool zu "generieren"?

Das Problem ist, dass ich keinen Mac zur Verfügung habe :( Und nur für dieses Tool einen Kaufen möchte ich auch nicht.
 

X3TitanCore

Bekanntes Mitglied
Jepp.
Bei Windows gibt es verschiedene Lösungen z.B. Jar2Exe. Da musste mal googlen was dir gefällt. Um auf Windows einen Installer für den MAC zu machen wüsste ich nichts.
 

cra

Mitglied
Ja, für Windows benutz ich JSmooth ... funtkioniert super :toll:

Für Mac hab ich wie gesagt noch immer nichts schlaues gefunden :(
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben