Print to file
Hi, Is there any way to print to a file with PrinterJob? I noticed that with PrintJob, the print dialog has the option but not for PrinterJob! Thanks in advance. __ Do You Yahoo!? Yahoo! Photos - 35mm Quality Prints, Now Get 15 Free! http://photos.yahoo.com/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
question about building libraty for JNI
greetings, I need a little assistance with building a shared library for JNI under Linux 2.2. This is how I went about creating the library: compiling: g++ -I /usr/local/java/include -I/usr/local/java/include/linux -shared -fPIC -o keys.o keys.c linking: gcc -shared -Wl,-soname,libkeys.so -o libkeys.so.0 keys.o -lc $ java -Djava.library.path=/home/ams/work/keys T Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/ams/work/keys/libkeys.so: keys.o: cannot open shared object file: No such file or directory at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1357) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1281) at java.lang.Runtime.loadLibrary0(Runtime.java:469) at java.lang.System.loadLibrary(System.java:774) at T.(T.java:5) I have also tried another way of building the library (ld -G -f /lib/libuuid.so.1 keys.o -o libkeys.so) but got the same error. I have to mention that the native code accesses the libdb.so library which i copied to /home/ams/work/keys. Why doesn't java find my library? TIA, -a -- Aaron Stromas| "Tick-tick-tick!!!... ja, Pantani is weg..." Oracle Corp | BRTN commentator +1 703.708.68.21 | L'Alpe d'Huez 1995 Tour de France -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: question about building libraty for JNI
"Aaron M. Stromas" wrote: > > greetings, > > I need a little assistance with building a shared library for JNI under > Linux 2.2. > This is how I went about creating the library: > > compiling: g++ -I /usr/local/java/include > -I/usr/local/java/include/linux -shared -fPIC -o keys.o keys.c > > linking: gcc -shared -Wl,-soname,libkeys.so -o libkeys.so.0 keys.o -lc > > $ java -Djava.library.path=/home/ams/work/keys T > Exception in thread "main" java.lang.UnsatisfiedLinkError: >/home/ams/work/keys/libkeys.so: keys.o: cannot open shared object file: No such file >or directory > at java.lang.ClassLoader$NativeLibrary.load(Native Method) > at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1357) > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1281) > at java.lang.Runtime.loadLibrary0(Runtime.java:469) > at java.lang.System.loadLibrary(System.java:774) > at T.(T.java:5) > > I have also tried another way of building the library (ld -G -f > /lib/libuuid.so.1 keys.o -o libkeys.so) but got the same error. I have > to mention that the native code accesses the libdb.so library which i > copied to /home/ams/work/keys. Why doesn't java find my library? TIA, I found that JNI code can compile and link without error and still be incorrect, and the only error you do get is the one above. I diagnose this with 'ldd -r /path/to/library/file' and see if there are any unresolved references that don't point to an existing library. Your library is looking for a routine "keys" which does not exist in that library, or any of the other .o files you sent through the linker. Here's bits of a Makefile with the gcc/library commands I use: JAVA_HOME=/usr/local/java/jdk1.2.2 JAVA_INC= -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux # # gcc configurable compile options of interest # -H list include header names # -g debugging code enabled GCCOPT= -g LDOPT=-Xlinker -t -Xlinker -Map -Xlinker /tmp/linkmap GCCDEF=-DIP_SUPPORT -DUNIX LIBOUT=$(HOME)/lib SRC=$(PROJ)/src $(LIBOUT)/libjsystem.so: \ $(SRC)/JNsApiSubsystemInterfaces.h \ $(SRC)/JNsApiSubsystemInterfaces.c \ $(CLASSES)/com/aravox/nsapi/subsystem/JNsApiSubsystemInterfaces.class - rm -f $@ @echo Creating $@... gcc $(GCCOPT) $(GCCDEF) $(JAVA_INC) -I$(SRC) \ $(LDOPT) \ -shared -o $@ $(SRC)/JNsApiSubsystemInterfaces.c \ $(LIBOUT)/lib*.so /home/joi/bin/anyUndefined $(LIBOUT)/lib*.so anyUndefined is a bash script which inspects the resulting .so for unresolved references and exits with an error code make will detect. #!/bin/bash tmp=/tmp/anyUndefined.$$ ldd -r $1 >$tmp 2>&1 echo "--" cat $tmp echo "--" if grep undefined $tmp; then exit 1 else exit 0 fi -- Joi EllisSoftware Engineer Aravox Technologies [EMAIL PROTECTED], [EMAIL PROTECTED] No matter what we think of Linux versus FreeBSD, etc., the one thing I really like about Linux is that it has Microsoft worried. Anything that kicks a monopoly in the pants has got to be good for something. - Chris Johnson -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: question about building libraty for JNI
Hello again, I managed to build my library using the the GNU linker (ld -G -f /usr/lin/libdb.so -o libkeys.so) but another problem surfaced - I now get java.lang.UnsatisfiedLinkError: /home/ams/work/keys/libkeys.so: undefined symbol: GetStringUTFChars I pass -Djava.library.path=/home/ams/work/keys which according to everything i read should be sufficient. Besides, setting LD_LIBRARY_PATH=/usr/local/java/jre/lib/i386/classic doesn't help either. Any idea what is going on? TIA, -a Joi Ellis wrote: > "Aaron M. Stromas" wrote: > > > > greetings, > > > > I need a little assistance with building a shared library for JNI under > > Linux 2.2. > > This is how I went about creating the library: > > > > compiling: g++ -I /usr/local/java/include > > -I/usr/local/java/include/linux -shared -fPIC -o keys.o keys.c > > > > linking: gcc -shared -Wl,-soname,libkeys.so -o libkeys.so.0 keys.o -lc > > > > $ java -Djava.library.path=/home/ams/work/keys T > > Exception in thread "main" java.lang.UnsatisfiedLinkError: >/home/ams/work/keys/libkeys.so: keys.o: cannot open shared object file: No such file >or directory > > at java.lang.ClassLoader$NativeLibrary.load(Native Method) > > at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1357) > > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1281) > > at java.lang.Runtime.loadLibrary0(Runtime.java:469) > > at java.lang.System.loadLibrary(System.java:774) > > at T.(T.java:5) > > > > I have also tried another way of building the library (ld -G -f > > /lib/libuuid.so.1 keys.o -o libkeys.so) but got the same error. I have > > to mention that the native code accesses the libdb.so library which i > > copied to /home/ams/work/keys. Why doesn't java find my library? TIA, > > I found that JNI code can compile and link without error and still be > incorrect, and the only error you do get is the one above. I diagnose > this with 'ldd -r /path/to/library/file' and see if there are any > unresolved references that don't point to an existing library. > > Your library is looking for a routine "keys" which does not exist in > that library, or any of the other .o files you sent through the linker. > > Here's bits of a Makefile with the gcc/library commands I use: > > JAVA_HOME=/usr/local/java/jdk1.2.2 > JAVA_INC= -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux > # > # gcc configurable compile options of interest > # -H list include header names > # -g debugging code enabled > GCCOPT= -g > LDOPT=-Xlinker -t -Xlinker -Map -Xlinker /tmp/linkmap > GCCDEF=-DIP_SUPPORT -DUNIX > LIBOUT=$(HOME)/lib > SRC=$(PROJ)/src > > $(LIBOUT)/libjsystem.so: \ > $(SRC)/JNsApiSubsystemInterfaces.h \ > $(SRC)/JNsApiSubsystemInterfaces.c \ > $(CLASSES)/com/aravox/nsapi/subsystem/JNsApiSubsystemInterfaces.class > - rm -f $@ > @echo Creating $@... > gcc $(GCCOPT) $(GCCDEF) $(JAVA_INC) -I$(SRC) \ > $(LDOPT) \ > -shared -o $@ $(SRC)/JNsApiSubsystemInterfaces.c \ > $(LIBOUT)/lib*.so > /home/joi/bin/anyUndefined $(LIBOUT)/lib*.so > > > anyUndefined is a bash script which inspects the resulting .so for > unresolved references and exits with an error code make will detect. > > #!/bin/bash > tmp=/tmp/anyUndefined.$$ > ldd -r $1 >$tmp 2>&1 > echo "--" > cat $tmp > echo "--" > if > grep undefined $tmp; > then > exit 1 > else > exit 0 > fi > > -- > Joi EllisSoftware Engineer > Aravox Technologies [EMAIL PROTECTED], [EMAIL PROTECTED] > > No matter what we think of Linux versus FreeBSD, etc., the one thing I > really like about Linux is that it has Microsoft worried. Anything > that kicks a monopoly in the pants has got to be good for something. >- Chris Johnson -- Aaron Stromas| "Tick-tick-tick!!!... ja, Pantani is weg..." Oracle Corp | BRTN commentator +1 703.708.68.21 | L'Alpe d'Huez 1995 Tour de France -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: question about building libraty for JNI
corection - i was setting the LD_LIBRARY_PATH to /usr/local/java/jre/lib/i386/ not /usr/local/java/jre/lib/i386/classic Aaron Stromas wrote: > Hello again, > > I managed to build my library using the the GNU linker > (ld -G -f /usr/lin/libdb.so -o libkeys.so) but another problem surfaced - I now get >java.lang.UnsatisfiedLinkError: /home/ams/work/keys/libkeys.so: undefined > symbol: GetStringUTFChars > > I pass -Djava.library.path=/home/ams/work/keys which according to everything i read >should be sufficient. Besides, setting > LD_LIBRARY_PATH=/usr/local/java/jre/lib/i386/classic doesn't help either. > > Any idea what is going on? TIA, > > -a > > Joi Ellis wrote: > > > "Aaron M. Stromas" wrote: > > > > > > greetings, > > > > > > I need a little assistance with building a shared library for JNI under > > > Linux 2.2. > > > This is how I went about creating the library: > > > > > > compiling: g++ -I /usr/local/java/include > > > -I/usr/local/java/include/linux -shared -fPIC -o keys.o keys.c > > > > > > linking: gcc -shared -Wl,-soname,libkeys.so -o libkeys.so.0 keys.o -lc > > > > > > $ java -Djava.library.path=/home/ams/work/keys T > > > Exception in thread "main" java.lang.UnsatisfiedLinkError: >/home/ams/work/keys/libkeys.so: keys.o: cannot open shared object file: No such file >or directory > > > at java.lang.ClassLoader$NativeLibrary.load(Native Method) > > > at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1357) > > > at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1281) > > > at java.lang.Runtime.loadLibrary0(Runtime.java:469) > > > at java.lang.System.loadLibrary(System.java:774) > > > at T.(T.java:5) > > > > > > I have also tried another way of building the library (ld -G -f > > > /lib/libuuid.so.1 keys.o -o libkeys.so) but got the same error. I have > > > to mention that the native code accesses the libdb.so library which i > > > copied to /home/ams/work/keys. Why doesn't java find my library? TIA, > > > > I found that JNI code can compile and link without error and still be > > incorrect, and the only error you do get is the one above. I diagnose > > this with 'ldd -r /path/to/library/file' and see if there are any > > unresolved references that don't point to an existing library. > > > > Your library is looking for a routine "keys" which does not exist in > > that library, or any of the other .o files you sent through the linker. > > > > Here's bits of a Makefile with the gcc/library commands I use: > > > > JAVA_HOME=/usr/local/java/jdk1.2.2 > > JAVA_INC= -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux > # > > # gcc configurable compile options of interest > > # -H list include header names > > # -g debugging code enabled > > GCCOPT= -g > > LDOPT=-Xlinker -t -Xlinker -Map -Xlinker /tmp/linkmap > > GCCDEF=-DIP_SUPPORT -DUNIX > > LIBOUT=$(HOME)/lib > > SRC=$(PROJ)/src > > > > $(LIBOUT)/libjsystem.so: \ > > $(SRC)/JNsApiSubsystemInterfaces.h \ > > $(SRC)/JNsApiSubsystemInterfaces.c \ > > $(CLASSES)/com/aravox/nsapi/subsystem/JNsApiSubsystemInterfaces.class > > - rm -f $@ > > @echo Creating $@... > > gcc $(GCCOPT) $(GCCDEF) $(JAVA_INC) -I$(SRC) \ > > $(LDOPT) \ > > -shared -o $@ $(SRC)/JNsApiSubsystemInterfaces.c \ > > $(LIBOUT)/lib*.so > > /home/joi/bin/anyUndefined $(LIBOUT)/lib*.so > > > > > > anyUndefined is a bash script which inspects the resulting .so for > > unresolved references and exits with an error code make will detect. > > > > #!/bin/bash > > tmp=/tmp/anyUndefined.$$ > > ldd -r $1 >$tmp 2>&1 > > echo "--" > > cat $tmp > > echo "--" > > if > > grep undefined $tmp; > > then > > exit 1 > > else > > exit 0 > > fi > > > > -- > > Joi EllisSoftware Engineer > > Aravox Technologies [EMAIL PROTECTED], [EMAIL PROTECTED] > > > > No matter what we think of Linux versus FreeBSD, etc., the one thing I > > really like about Linux is that it has Microsoft worried. Anything > > that kicks a monopoly in the pants has got to be good for something. > >- Chris Johnson > > -- > Aaron Stromas| "Tick-tick-tick!!!... ja, Pantani is weg..." > Oracle Corp | BRTN commentator > +1 703.708.68.21 | L'Alpe d'Huez > 1995 Tour de France -- Aaron Stromas| "Tick-tick-tick!!!... ja, Pantani is weg..." Oracle Corp | BRTN commentator +1 703.708.68.21 | L'Alpe d'Huez 1995 Tour de France -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
