Was ist das Gegenstück zur Batch-Datei von Windows?

C

cjs

Neues Mitglied
Thread Starter
Dabei seit
24.04.2008
Beiträge
13
Reaktionspunkte
0
Hallo!

Ich muss ein Java-Programm unter Mac OS X starten, und natürlich müssen auch Parameter übergeben werden. Unter Windows mache ich das per Batch-Datei, aber als Mac-Einsteiger weis ich nicht, was man unter Mac OS X macht. Ich habe schon ein Shell-Script (.sh-Datei probiert), aber die muss ich auch von der Konsole aus aufrufen, und ich möchte das aber per Doppelklick von meinem Schreibtisch aus machen.

Vielleicht bin ich mit dem Shell-Skript ja schon am richtigen Weg, und muss nur was umstellen, dass der Mac nach einem Doppelklick die SH-Datei ausführt, anstatt den Editor zu starten?

Gruß,
Christian.
 
/usr/share/java/Tools/Jar Bundler.app

damit kannst du aus jar files eine app inkl start parametern machen...
 
Hallo und Willkommen bei macuser.de

Ein ausführbares Shellskript kann man mit der Endung .command abspeichern. Dann kann man es auch mit Doppelklick starten.

Eine weitere Alternative ist ein Apple Skript (Funktion "do shell script")
 
  • Gefällt mir
Reaktionen: danlei
Danke, das mit der Endung .command funktioniert soweit. Das mit dem Erzeugen von .app-Dateien habe ich mir auch notiert, das brauche ich sicher einmal.

Gibt es einen Trick, dass bei der Ausführung einer .command Datei im Verzeichnis der .command Datei gearbeitet wird? Bei mir verwendet er immer das Benutzerverzeichnis, gleich als ob ich den Terminal von Hand starten würde.

Danke,
Christian.
 
schreib in dein Shellscript einfach am anfang eine Zeile mit "cd /path/to/commandfile"
könnte helfen.
 
Das habe ich schon gemacht, wenn aber jemand das Programm in einen anderen Ordner kopiert, dann klappt das logischer weise nicht mehr. Ich bräuchte da was Unabhängiges. Eben so wie die Batch-Datei unter Windows.

Gruß,
Christian.
 
wenn du in eine windows batch datei vollständige pfade schreibst, dann geht die auch nicht, wenn du das programm in einen anderen ordner kopierst...

mach das mit der app, dann kannst die app immer verschieben...
 
ok dann probiers mal mit:
Code:
AKTUELLESVERZEICHNIS=`pwd`
cd $AKTUELLESVERZEICHNIS
oder
Code:
$AKTUELLESVERZEICHNIS=`echo $PWD`
cd  $AKTUELLESVERZEICHNIS

Update Tante Edit und mein Test sagen: mir meine Vorschläge funktionieren nicht :/
 
Zuletzt bearbeitet:
Hallo!

Ist schon klar, aber ich brauch in der Batch-Datei kein 'cd', wenn die Batch-Datei im selben Ordner liegt, wie die Jar-Datei:

Batch:
""""""""
@echo off
java -jar application.jar arg1 arg2 arg3

Shell-Script:
""""""""""""""""
#!/bin/bash
java -jar application.jar arg1 arg2 arg3

Beim Shell-Script bleibt er aber nicht in dem Ordner wo das Script liegt, sondern beginnt im Benutzerordner.

Ich hätte mir das jetzt mit der .app-Datei angeschaut, aber bei mir gibt es den Ordner /usr/share/java nicht. Ich habe ein Mac OS X 10.4.11 (alle verfügbaren Updates!).

Gruß,
Christian.
 
Hallo!

***
TEST = $pwd
cd $TEST
***

Das wäre ok, wenn nicht $pwd der Ordner des Benutzers wäre.

Gruß,
Christian.

P.S. Könnte ich die Jar-Datei auch über ein Apple-Script aufrufen? Ich habe versucht da was rauszufinden, aber Apple-Script scheint ein bisschen kompliziert zu sein.
 
das aktuelle verzeichnis bei unix systemen adressiert man mit .
in deinem fall also
java -jar ./application.jar arg1 arg2

bei 10.4 musste man den jar bundler wohl noch mit Xcode installieren...
 
Hallo!

Geht nicht, da das aktuelle Verzeichnis sofort der Benutzerorderner ist, wenn ich eine .command-Datei ausführe.

Gruß,
Christian.
 
dann beschäftige dich ein wenig mit relativen oder absoluten pfaden... ;)
schreib einfach den kompletten pfad mit rein...
den teil zum home kann man mit ~ abkürzen...
 
Achtung: ich glaub ich habs.... so einfach das ich nicht dran gedacht habe :eek:

Code:
cd `dirname $BASH_SOURCE`

das geht aber NUR bei .command files ;)
 
Poste doch einfach mal konkreten Code und welche Dateien verschiebbar sein sollen und welche immer am selben Ort liegen.
Dann blickt man vielleicht besser, wo Du hinaus willst.
 
cd ${BASH_SOURCE%/*};
wäre einfacher ;)
 
oder einfach: cd `dirname $0`
 
cd `dirname $BASH_SOURCE`
-> erzeugt eine Fehlermeldung.

cd ${BASH_SOURCE%/*};
-> danach bin ich noch immer im Benutzerorder.

Ich glaube aber, dass wir das Ganze vergessen können, da noch mehr Probleme aufgetreten sind, und die lassen sich sicher nicht lösen:

1. Der ODBC-Treiber lässt sich nicht installieren, und dann komme ich mit meiner Anwendung nicht an die Daten heran.

2. Unter Mac OS 9 (Classic Umgebung) gibt es kein Java 5, und ich kann auch von einer Classic-Anwendung kein Mac OS X Programm starten.

Bevor ich Euch da noch länger mit meinem Problemchen nerve, lasse ich das mit dem Mac lieber bleiben...

Danke für die Mühe,
Christian.
 
cd ${BASH_SOURCE%/*};
-> danach bin ich noch immer im Benutzerorder.

diese anweisung liefert dir das verzeichnis in dem das bash skript ausgeführt wird und wenn du es im benutzerordner ausführst, dann...

1. Der ODBC-Treiber lässt sich nicht installieren, und dann komme ich mit meiner Anwendung nicht an die Daten heran.

den musst du doch nur in /Library/Java/Extensions/ packen...
 
Na dann nimm doch einfach den Automator und bastel Dir alle notwendigen Aufrufe dort zusammen.
 
Zurück
Oben Unten