Java-Anwendung unter Mac OS X starten

G

gamel

Registriert
Thread Starter
Dabei seit
18.10.2006
Beiträge
3
Reaktionspunkte
0
Hallo!

Ich habe eine Java-Anwendung geschrieben, welche auch auf dem Mac laufen soll. Glücklicherweise kann man auf dem Mac ja solch ein jar-Package durch einen einfachen Klick starten, doch bei mir gestaltet sich das Problem etwas schwieriger. Ich muss nämlich mein Programm eigentlich folgendermaßen starten:

java -jar anwendung.jar -Xmx256M -Xms256M

um der Anwendung genügend Arbeitsspeicher zu reservieren. Diese Optionen kann ich durch einen einfachen klick ja leider nicht mitgeben.

Meine erste Idee war nun, eine bash-Datei mit diesem Befehl zu schreiben, die der User dann ausführen kann. Hier ist nun das Problem, dass Bash-Dateien nicht standardgemäß durch das Terminal ausgeführt werden. Ein normalUser weiß also auch hier nicht, wie er das starten kann.

Die 2. Idee war dann, ein weiteres Java-Programm zu schreiben, welches den Befehl mittels

Runtime.exec("mein Befehl samt Optionen");

ausführt. Das funktioniert unter Linux und Windows genauso wie ich es möchte, doch auf dem Mac läufts net so recht. Scheinbar bekommt die Anwendung nicht den zugeteilten Arbeitsspeicher, wenn ich über das Hilfsprogramm starte, während alles super läuft, wenn ich die Befehlszeile per Hand im Terminal eingebe.

Hier also die abschließenden Fragen:
1) Woran liegt es, dass mein Programm über das Hilfsprogramm nicht sauber läuft, über die Befehlszeile aber schon?
2) Welche möglichkeiten habe ich noch, die jar-Datei mit einem einfachen Klick samt den korrekten Optionen zu starten? Kann man sowas im Manifest der jar-Datei festegen?

Viele Grüße und schon danke im Vorraus.
Thomas
 
der jar bundler in /Developer/Applications/Java hilft dir weiter...
falls du XCode installiert hast...
 
Hab leider das Problem, dass ich momentan kenen Mac hier hab und unter linux entwickle... Daher kann ich das Tool leider nicht nutzen.

Was macht der Jar-Bundler? Erstellt er mir ne neue Datei die ich nur noch klicken muss?
Und würde die dann auch auf jedem anderen Mac laufen?

Viele Grüße
Thomas
 
der macht aus einem jar file halt ein app package, das man auf dem mac doppel klicken kann (und auch mit start parametern versehen kann)...

wenn du nur auf linux entwickelst, dann solltest du einfach mal mit dem manifest und policy files rumprobieren...
 
im manifest kann man sowas nicht angeben, da die JVM schon gestartet ist, wenn die jar-Datei geöffnet wird...
Von policy-files hab ich bisher noch keine ahnung, wo gibts da infos?
 
Also mein Problem ist ein ganz anderes, passt aber zumindest zu der Überschrift dieses Threads. Wie starte ich (als jemand, der noch nicht mit Java rumgespielt hat) überhaupt eine Java-Datei auf Mac OS X?!? Eigentlich sollte das, soweit ich das mitbekommen habe, automatisch erfolgen. Wenn ich die entsprechende Datei (.jar) per Kontextmenü über "Öffnen mit" > "Jar Launcher" zu öffnen probiere, beendet sich die Anwendung nach einem kurzen Augenblick wieder von selbst. Irgendwelche Tipps?
 
Da sollte eigentlich ein Doppelklick schon reichen.
Kommt denn keine Fehlermeldung oder ein Hinweis, mal in der Konsole nach den Logs zu schauen? Vielleicht wird eine andere Java-Version benötigt.
 
Eine Fehlermeldung kam nicht... In der Konsole hab ich unter anderem das hier entdeckt:

16.02.10 15:38:27 [0x0-0xd20d2].com.apple.JarLauncher[1694] Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/swing/GroupLayout$Group

sagt mir persönlich natürlich nichts... :confused:
 
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NoClassDefFoundError.html schrieb:
Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found.

The searched-for class definition existed when the currently executing class was compiled, but the definition can no longer be found.

auf Deutsch: Er findet eine Klasse nicht, die beim Kompilieren noch vorhanden war. Und das ist in dem Fall hier offenbar die Klasse: "javax/swing/GroupLayout$Group".

Diese existiert in Java 1.5 offenbar noch nicht. Steht dein Default Java auf 1.6 (unter Snow Leo sollte das der Fall sein)?
Tipp: Programme -> Dienstprogramme -> Java–Einstellungen
 
@ Rupp und almdudi: erstmal vielen Dank! und
@ Rupp: ich habe noch gar keinen SnowLeo installiert, bin noch mit 10.5. unterwegs...in den Java-Einstellungen kann ich jedenfalls keine enstrechenden Default-Eistellungen für Java 1.6 finden? Wie kann man denn eigentlich seine Java-Version herausbekommen? Normalerweise erfolgt das Update doch über die Softwareaktualisierung, oder?? :confused: Kann man denn eine Klasse nachträglich in eine bestehende Java-Version einbinden??
 
Zuletzt bearbeitet:
Hat keiner eine Idee... :confused:
 
ich habe noch gar keinen SnowLeo installiert, bin noch mit 10.5. unterwegs...in den Java-Einstellungen kann ich jedenfalls keine enstrechenden Default-Eistellungen für Java 1.6 finden? Wie kann man denn eigentlich seine Java-Version herausbekommen? Normalerweise erfolgt das Update doch über die Softwareaktualisierung, oder?? :confused: Kann man denn eine Klasse nachträglich in eine bestehende Java-Version einbinden??

wenn du einen C2D mit 64bit hast, dann kannst auch unter 10.5 java 1.6 haben. sollte eigentlich auch dann über die aktualisierung angeboten worden sein.
als letzter ausweg bleibt noch soylatte...

eine klasse einbinden kannst üben den ordner /Library/Java/Extensions
 
Eigentlich gab es damals ein Update für Leopard wo Java 1.6 mitgeliefert wurde. Dementsprechend sollte es dann auch in den Java–Einstellungen auftauchen (auch wenn 1.5 noch default ist).

Lad es doch einfach nochmal manuell runter und installier drüber. Mach aber bitte vorher nen Backup, nicht das was schief geht: Link zu Apple
 
Zurück
Oben Unten