JOSM und mehr RAM-Speicher reservieren

Bahnhof?

Nein, Linux.

OK, ich habe den Smily überlesen.
Macht das Linux Skript ein automatisches Update? Oder ist dies auch nur ein halbautomatisches Update?

Das Skript holt sich die aktuellsten Ereignisse der Entwicklung vom SVN trunk, “kompilliert” diese und schiebt dann die daraus entstandene binary nach /home/user/bin, wenn ich das so richtig sehe. Also, das daraus resultierende Ergebnis ist zwar noch aktueller als die josm-latest.jar, läuft aber so ohne Zufügung von anderen Befehlen auch nur “halbautomatisch”. Was ist bei dir eigentlich automatisch? Wenn du meinst das, dass Ganze beim starten aktualisieren soll, dann mach doch hinter die Zeile:

wget http://josm.openstreetmap.de/download/josm-latest.jar

noch ein

java -jar .\josm-latest.jar

(Windows-Schreibweise, bei linux dann statt .\ ein ./)
Das Skript ist dann allerdings “dumm”, und holt immer wenn man es aufruft, also in dem Fall dann JOSM startet, die aktuelle josm-latest.jar, wenn man JOSM also alle paar Minuten startet, tut man das lieber direkt über die binary(josm-latest.jar).

Gruß Philipp

da latest immer einmal am Tag kompiliert wird, könnte man beim Start gucken, ob die josm-latest heute heruntergeladen wurde, wenn nicht, soll wget diese neu laden. Ich hab nur keine Ahnung, ob man per batch ans Dateidatum herankommt.

Echt schlimm, mit der Jugend von heute!
Liest einfach nicht die man-pages!

“wget --timestamping ” is all you want :wink:

Und wehe man wechselt das Verzeichnis!

Das geht auch anders :wink: Ich lasse das hier per Cronjob laufen:

#!/bin/sh

cd /programs/Grafik/JOSM
mv -f josm-latest.txt josm-latest-old.txt                                       
wget -O josm-latest.txt  http://josm.openstreetmap.de/latest                    
                                                                                
if diff -q josm-latest.txt josm-latest-old.txt                                  
then                                                                            
        echo "Latest JOSM up to date."                                          
else
        echo "Latest JOSM needs update..."
        mv -f josm-latest.jar josm-latest-old.jar
        wget -O josm-latest.jar  http://josm.openstreetmap.de/josm-latest.jar
fi

mv -f josm-tested.txt josm-tested-old.txt
wget -O josm-tested.txt  http://josm.openstreetmap.de/tested

if diff -q josm-tested.txt josm-tested-old.txt
then
        echo "Tested JOSM up to date."
else
        echo "Tested JOSM needs update..."
        mv -f josm-tested.jar josm-tested-old.jar
        wget -O josm-tested.jar  http://josm.openstreetmap.de/josm-tested.jar
fi

Mein Tipp: Java Webstart verwenden, da ist die automatische Aktualisierung mit drin, irgendwelche Shellskripte komplett überflüssig. Allerdings muss noch der maximale Speicher hochgesetzt werden, sonst läuft das Ding nur mit 64MB. Dazu gibt es auch ein Ticket.

  • Auf josm.openstreetmap.de gehen
  • Die “josm.jnlp” unter “Launch josm.jnlp” mit Rechts-Klick am besten auf dem Desktop speichern.
  • josm.jnlp auf dem Desktop mit notepad öffnen, dort die Zeile

        <j2se version="1.6+"/>

austauschen gegen


        <j2se version="1.6+" initial-heap-size="1024m" max-heap-size="3072m"/>

Achtung: Beide Werte sind für “gewöhnliche” 32bit Systeme zu groß, dort am besten 256m als initial-heap-size und 768m als max-heap-size ausprobieren!

Dann auf josm.jnlp doppelklicken. Fertig.

Übrigens: das Icon mit OSM-Logo, das beim ersten Aufruf auf dem Desktop angelegt wird, hat den größeren Speicher nicht mit drin (warum auch immer). Daher immer auf josm.jnlp doppelklicken.

In JOSM unter Hilfe → Statusbericht müsste dann in etwa stehen:


Identification: JOSM/1.5 (5181 de)
Memory Usage: 76 MB / 2709 MB (41 MB allocated, but free)
Java version: 1.6.0_xx, Sun Microsystems Inc., Java HotSpot(TM) 64-Bit Server VM
Operating system: Windows 7

Werden dann beim jedem click die 7 MB josm neu runtergeladen? Nicht sehr ökonomisch.

MHohmanns Skript liesse sich auch verkürzen:


#!/bin/sh

cd /programs/Grafik/JOSM
wget http://josm.openstreetmap.de/josm-latest.jar -q --timestamping
wget http://josm.openstreetmap.de/josm-tested.jar -q --timestamping

Nein, die aktuelle Version wird lokal gecached.

Sorry, Sorry…des is so aber wirklich sehr kompfortabel…DANKE für den Hinweis.


C:\GnuWin32\bin\wget.exe --timestamping http://josm.openstreetmap.de/josm-tested.jar
C:\Programme\Java\jre7\bin\java.exe -Xmx3000M -jar josm-tested.jar %1

Erst mal herzlichen Dank für Eure Beiträge:

Mein Problem, JOSM mit mehr reserviertem Speicherplatz über eine *.bat-Datei zu starten, funktioniert jetzt:

C:\windows\sysWOW64\java.exe -Xmx1536M -jar “C:\program Files (x86)\JOSM\josm-tested.jar”

Jetzt versuche ich mich mal noch an dem automatischen update …

Euch einen schönen ersten Mai

Michelwald

Gute Idee - die Option kannte ich noch gar nicht, und die entsprechende man-Page ist mit dem Eintrag “Turn on time-stamping.” ein wenig knapp formuliert :wink: Werde ich mal ausprobieren :slight_smile:

So sieht meine josm.bat aus. Gestartet wird sie mit “C:\Users\User\Documents\josm.bat tested” für die stabile Version. Da die vielen bing-Bilder meinen Virenscanner und das Backup regelmäßig ausgebremst haben, habe ich noch eine Löschroutine ans Ende gebastelt.

@echo off
set path=%path%;C:\Program Files\GnuWin32\bin;d:\Program Files\josm
set java_param=-jar -Xmx1024m
set tiles=%localappdata%\Temp\JMapViewerTiles_User

d:
cd "\Program Files\JOSM"

:run_josm
rem Testen ob neue Version von JOSM existiert, wenn "ja", dann download
wget.exe -N http://josm.openstreetmap.de/josm-%1.jar

rem starte JOSM mit Parametern
java.exe %java_param% josm-%1.jar

rem Bing-Tile-Cache loeschen falls mehr als 30000 files im Verzeichnis
dir /a-d "%tiles%\Bing Aerial Maps" | find /c ":" > NUMfiles.###
set /p count=<NUMfiles.###
del /q NUMfiles.###
rem echo %count%
if %count% lss 30000 goto end

:delete_tiles
del /f /q "%tiles%\Bing Aerial Maps"
rem del /f /q "%tiles%\Mapnik"
goto end

:end
rem pause

Ich habe mir für dafür mal eine EXE selber geschrieben. Die prüft, ob es eine neue Version gibt, lädt die dann runter und startet sie. Da jedoch Virenkiller das als “Nachladefunktion” erkennen (Ist es ja auch, nur halt eine Positive), schlagen einige davon Alarm. Also keine gute Idee, die hier zu veröffentlichen.

So starte ich JOSM:

  ShellExecute(Application.Handle, PChar('open'),
  PChar('C:\WINDOWS\system32\java.exe' ),
  PChar('-Xmx1024M -jar '+ExtractFilePath(Application.ExeName)+'josm-'+inttostr(v)+'.jar'),nil, SW_NORMAL);

und damit hatte JOSM bisher keine Ram-Probleme. Ich füge ich nicht die explorer.exe, sondern die java.exe mit an, damit es funktioniert.

Der OP hatte ja nach einer Batch Lösung unter Windows für DAUs gefragt. Ohne weitere Hinweise kamen hier auch Linux Vorschläge und jetzt auch eine Zeile aus einer mir nicht ersichtlichen Programmierumgebung. Dies mag für einige oder villeicht auch viele ja einfach zu erkennen sein (so wie bei uns in der Firma der Vertrieb Kundenwünsche erst nach der Auslieferung beschreibt und dann ein “natürlich” dabei tut) - aber nicht für alle.

Daher eine Bitte von mir: schreibt doch dabei, unter welchen OS und welcher Umgebung diese Aufrufe durchgeführt werden sollen. Der Ratespass geht dabei zwar verloren, das Verständnis steigt.

Danke,
trekki

ich ziehe diesen thread noch mal hoch:

Es gibt ja jetzt das neue JOSM 5210.

Hier wird nach dem Öffnen angekündigt, dass:

Einige kleinere Erweiterungen

Kommandozeilenargument --load-preferences= um Einstellungen beim Starten von JOSM zu setzen

Da frage ich nun als DAU:

kann ich hier auch mehr RAM-Speicherplatz reservieren lassen und wenn ja, wie geht das, wo muss ich was hineinschreiben. Ich habe leider keine Ahnung und finde auch über goo*** usw. keine Antwort.

Danke an Euch, die Ihr es vielleicht wisst

Michelwald

Nein…aber du kannst die Einstellungen, die du in josm setzen kannst ändern. Wie weiß ich auch nicht.

Das --load-preferences= muss hinter das josm-teted.jar

Sinnvoll ist es meiner Meinung nach nur, wenn man eine Versionen von josm mit mehreren Einstellungen nutzen möchte. Bspw. zum Mappen von Grenzen soll Mapcss xyz geladen werden und zum Mappen von Radwegen abc.

Nahmd,

Nein.

Der maximal benutzbare Speicherplatz ist eine Eigenschaft der Java virtuellen Maschine (java) und nicht eine Eigenschaft der Applikation (josm.jar). Das josm.jar kann sich nicht selbst mehr Speicher zuweisen. Du musst also den Speicherparameter wie Du es oben schon gemacht hast dem java direkt übergeben.

Gruß Wolf

Danke für die klare Antwort, mal wieder etwas dazu gelernt :slight_smile: