Ich möchte in einem Verzeichnis ein jar-File (Apache PDFBox) ausführen. Wenn ich ein Terminal öffne und mich mit dem cd-Kommando bis in das gleiche Verzeichnis wie das jar-File durchhangele, dann funktioniert der Aufruf ohne jede Pfadangabe: java -jar pdfbox.jar PDFToImage -imageType png test.pdf Der Pfad in dem das Ganze liegt lautet definitiv: Volumes/System/Users/Administrator/Documents/pdf_test/ Versuche ich den Aufruf aus irgend einem anderen Verzeichnis unter Angabe des vollen Pfades, erhalte ich immer die Fehlermeldung "Unable to access jarfile": Mini1:~ administrator$ java -jar Volumes/System/Users/Administrator/Documents/pdf_test/pdfbox.jar PDFToImage -imageType png test.pdf Error: Unable to access jarfile Volumes/System/Users/Administrator/Documents/pdf_test/pdfbox.jar Warum? Erbitte Hilfe. Danke. Nachtrag: Ich habe den Pfad auch schon von Vorne her gekürzt und mit und ohne vorangestellte Tilde "~" und Slash ausprobiert, kein Effekt. Hole ich mir den Pfad des Verzeichnisses per (nicht von mir geschriebener) Software, erhalte ich "System/Users/administrator/Documents/pdf_test/". Geht aber auch nicht. Das Kommando "pwd" im Terminal gibt mir aus: "/Users/administrator/documents/pdf_test". Auch das funzt beim Java-Aufruf nicht. Groß/Kleinschreibung spielt m.E: unter OSX mit "einfachem" HFS+ keine Rolle, zumindest nicht beim händischen Verzeichniswechsel im Terminal.
Irgendwie fehlen mir für absolute Pfade ein / am Anfang... / sind Pfade beginnend bei "root" ohne / sind Pfade beginnend ab dem aktuellen Verzeichnis (kann man mit cd wechseln und pwd anzeigen). ~/ beginnt bei $HOME. ~name/ beginnt beim Home-Verzeichnis des Nutzers (meist /Users/name/) Daher denke ich java -jar /Volumes/System/Users/Administrator/Documents/pdf_test/pdfbox.jar PDFToImage -imageType png test.pdf könnte gehen wenn in der Beschreibung kein Detail fehlt. (PS: das ist nicht mal MacOS-Spezifisch bis auf /Volumes und /Users sondern generell für alle UNIX-Systeme).
:
Bearbeitet durch User
Danke, das Geheimnis hat sich gelüftet! Auch vor dem PDF (test.pdf) muss der gesamte Pfad stehen. Es genügt, wenn beide Pfade (vor dem Jar und vor dem PDF) bei "/Users/..." beginen.
1 | Mini1:system administrator$ java -jar /Users/administrator/Documents/pdf_test/pdfbox.jar PDFToImage -imageType png /Users/administrator/Documents/pdf_test/test.pdf |
2 | |
3 | Newz-Mac-Mini-1:system administrator$ |
Keine Fehlermeldung und es wird brav ein PNG geschrieben ... in das Verzeichnis der PDF-Datei, diesmal ohne Angabe eines Pfades. Und, falls es interessiert, mit einem Applescript klappt es nun auch:
1 | set jarPath to "/users/administrator/documents/pdf_test/pdfbox.jar PDFToImage -imageType png -startPage 1 -endPage 1 /users/administrator/documents/pdf_test/test.pdf" |
2 | do shell script "java -jar " & jarPath |
Nun muss ich nur noch herausfinden, wie das unter Windows geht ...
:
Bearbeitet durch User
Frank E. schrieb: > Nun muss ich nur noch herausfinden, wie das unter Windows geht ... Im Prinzip ganz genauso. Absolute Pfade für Executable und Dokument verwenden und diese Pfade quoten, wenn sie Leerzeichen enthalten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.