Forum: PC-Programmierung MacOSX: Problem mit Pfad


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

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.

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

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
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

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
von c-hater (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.