On 06.04.03 Andre Schulze (as8@rcs.urz.tu-dresden.de) wrote:
Moin,
#!/bin/sh CLASSPATH=/home/hille/latex/iText/t1/iText.jar java encrypt_pdf presentations.pdf presentations1.pdf <arguments>
Sollte so funktionieren, wenn in iText.jar tatsächlich alles notwendige drin steckt.
Hmm, dachte ich auch.
kriege aber nur:
PDF document encryptor Reading presentations.pdf Exception in thread "main" java.lang.NoClassDefFoundError: com/lowagie/text/pdf/PdfReader at encrypt_pdf.main(encrypt_pdf.java:56) drachi:[t1] >
Wenn du in das jar File reinschaust (jar ist lediglich ein zip Archiv mit einem MANIFEST File) muß die angemeckerte Datei auftauchen.
OK, das wußte ich auch vorher: Ich hab da reingeschaut und in der "Verzeichnis"struktur com/lowagie/text/pdf gibts wirklich ein File PdfReader.class . Den Quellcode von encrypt_pdf.class hab ich vorzuliegen und da steht am Anfang drin:
import com.lowagie.text.*; import com.lowagie.text.pdf.*; import java.io.*; import java.util.HashMap;
Ja, wie soll ich das verstehen? Er kann das File offenbar stat'en, sonst würde er nicht versuchen es zu lesen aber scheitert dann? Folgendes funktioniert:
basedir=/home/hille/latex/iText/t1 CLASSPATH=$basedir/iText.jar export CLASSPATH java com.lowagie.tools.encrypt_pdf presentations.pdf presentations1.pdf etc.
Dabei wird aber offensichtlich die Klasse encrypt_pdf verwendet, die im JAR-File selber drinsteckt (kann man die irgendwie ersetzen?). In deren Sourcefile steht nur:
package com.lowagie.tools; import com.lowagie.text.pdf.PdfEncryptor; import com.lowagie.text.pdf.PdfReader; import com.lowagie.text.pdf.PdfWriter;
und es tut. Nächster Versuch mit dem externen encrypt_pdf:
basedir=/home/hille/latex/iText/t1 CLASSPATH=$basedir/iText.jar:$CLASSPATH export CLASSPATH java encrypt_pdf presentations.pdf presentations1.pdf test master 10100000 40 test test1
PDF document encryptor Reading presentations.pdf Writing presentations1.pdf Exception in thread "main" java.lang.NoSuchMethodError at encrypt_pdf.main(encrypt_pdf.java:61)
Er scheint ganz gut loszulaufen scheitert aber dann. Der passende Code lautet
PdfEncryptor.encrypt(reader, new FileOutputStream(args[OUTPUT_FILE]),
als ob er auf die Standard-Java Libs nicht mehr zugreifen kann...
Any ideas?
Hilmar