Because the JNI Makefile adds ${JAVA_HOME}/include to the build include path. That's how gcc can find jni.h. Since you don't have JAVA_HOME defined, it can't find jni.h.
Note that CLASSPATH is for Java compilation only. The problem you are having is with JNI (c code) compilation. Using JAVA_HOME may not be "how it's done" anymore. It certainly used to be. As I said - please do open a bug on sourceforge and I'll use that to track finding a better way to include the jni.h directory in the JNI build. On Fri, Apr 24, 2009 at 2:35 PM, Woo, Ed <e...@issltd.com> wrote: > Hi Dan, > > Thank you for the reply. I don't understand why I need to do this. I have my > classpath defining my java sdk which I was able to compile the jsr80.jar and > jsr80_ri.jar files. > > -----Original Message----- > From: ddstr...@gmail.com [mailto:ddstr...@gmail.com] On Behalf Of Dan > Streetman > Sent: Friday, April 24, 2009 2:12 PM > To: Woo, Ed > Cc: javax-usb-devel@lists.sourceforge.net > Subject: Re: [javax-usb-devel] Help > > jni.h is part of the standard Java SDK. Your problem is JAVA_HOME > isn't defined. Previous SDKs defined JAVA_HOME for you, but they may > have stopped doing that. Define JAVA_HOME to the location of your SDK > (where the include/ directory is) and the compile should find jni.h. > For example if you have your SDK in /usr/lib/java and you use bash > then do "export JAVA_HOME=/usr/lib/java". > > Open a bug at the sourceforge page, I will see if there is a better > way to find the java installation. > > On Fri, Apr 24, 2009 at 12:47 PM, Woo, Ed <e...@issltd.com> wrote: >> Hello, >> >> >> >> I’ve been unable to build the javax-usb-ri-linux jar file. Keep getting same >> errors. >> >> Cannot find in my machine the jni.h file. Using ant 1.7.x and optional >> package on ubuntu 8.10. >> >> Can someone help. >> >> thanks >> >> >> >> >> >> >> >> Buildfile: build.xml >> >> compile: >> [echo] Compiling class files. >> [javac] Compiling 17 source files to >> /home/administrator/Desktop/JSR/javax-usb-ri-linux/src >> [javac] Note: Some input files use unchecked or unsafe operations. >> [javac] Note: Recompile with -Xlint:unchecked for details. >> [echo] Compiling JNI library. >> [exec] gcc -I/include -I/include/linux -Wall -fPIC -c >> JavaxUsbKernel.c >> [exec] In file included from JavaxUsb.h:14, >> [exec] from JavaxUsbKernel.c:11: >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:2:17: error: jni.h: No such >> file or directory >> [exec] In file included from JavaxUsb.h:14, >> [exec] from JavaxUsbKernel.c:11: >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:22: error: expected ‘=’, ‘,’, >> ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:30: error: expected ‘=’, ‘,’, >> ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:38: error: expected ‘=’, ‘,’, >> ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:46: error: expected ‘=’, ‘,’, >> ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:54: error: expected ‘=’, ‘,’, >> ‘;’, ‘asm’ or ‘__attribute__’ before ‘jint’ >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:62: error: expected ‘=’, ‘,’, >> ‘;’, ‘asm’ or ‘__attribute__’ before ‘jint’ >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:70: error: expected ‘=’, ‘,’, >> ‘;’, ‘asm’ or ‘__attribute__’ before ‘jint’ >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:78: error: expected ‘=’, ‘,’, >> ‘;’, ‘asm’ or ‘__attribute__’ before ‘jint’ >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:86: error: expected ‘=’, ‘,’, >> ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ >> [exec] com_ibm_jusb_os_linux_JavaxUsb.h:94: error: expected ‘=’, ‘,’, >> ‘;’, ‘asm’ or ‘__attribute__’ before ‘jstring’ >> [exec] In file included from JavaxUsb.h:15, >> [exec] from JavaxUsbKernel.c:11: >> [exec] JavaxUsbLog.h:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘tracing’ >> [exec] JavaxUsbLog.h:19: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘trace_default’ >> [exec] JavaxUsbLog.h:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘trace_hotplug’ >> [exec] JavaxUsbLog.h:21: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘trace_xfer’ >> [exec] JavaxUsbLog.h:22: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘trace_urb’ >> [exec] JavaxUsbLog.h:25: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘trace_flush’ >> [exec] In file included from JavaxUsb.h:16, >> [exec] from JavaxUsbKernel.c:11: >> [exec] JavaxUsbChecks.h:61: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘get_exception’ >> [exec] JavaxUsbChecks.h:74: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsbChecks.h:83: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘debugGetObjectClass’ >> [exec] JavaxUsbChecks.h:90: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘debugGetMethodID’ >> [exec] JavaxUsbChecks.h:97: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘debugGetFieldID’ >> [exec] JavaxUsbChecks.h:104: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘debugNewStringUTF’ >> [exec] JavaxUsbChecks.h:111: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘debugNewGlobalRef’ >> [exec] JavaxUsbChecks.h:118: error: expected declaration specifiers or >> ‘...’ before ‘JNIEnv’ >> [exec] JavaxUsbChecks.h:118: error: expected declaration specifiers or >> ‘...’ before ‘jobject’ >> [exec] JavaxUsbChecks.h: In function ‘debugDeleteLocalRef’: >> [exec] JavaxUsbChecks.h:120: error: ‘env’ undeclared (first use in this >> function) >> [exec] JavaxUsbChecks.h:120: error: (Each undeclared identifier is >> reported only once >> [exec] JavaxUsbChecks.h:120: error: for each function it appears in.) >> [exec] JavaxUsbChecks.h:120: error: ‘object’ undeclared (first use in >> this function) >> [exec] JavaxUsbChecks.h:121: warning: implicit declaration of function >> ‘debug_exception’ >> [exec] JavaxUsbChecks.h: At top level: >> [exec] JavaxUsbChecks.h:124: error: expected declaration specifiers or >> ‘...’ before ‘JNIEnv’ >> [exec] JavaxUsbChecks.h:124: error: expected declaration specifiers or >> ‘...’ before ‘jobject’ >> [exec] JavaxUsbChecks.h: In function ‘debugDeleteGlobalRef’: >> [exec] JavaxUsbChecks.h:126: error: ‘env’ undeclared (first use in this >> function) >> [exec] JavaxUsbChecks.h:126: error: ‘object’ undeclared (first use in >> this function) >> [exec] JavaxUsbChecks.h: At top level: >> [exec] JavaxUsbChecks.h:130: error: expected declaration specifiers or >> ‘...’ before ‘JNIEnv’ >> [exec] JavaxUsbChecks.h:130: error: expected declaration specifiers or >> ‘...’ before ‘jbyteArray’ >> [exec] JavaxUsbChecks.h:130: error: expected declaration specifiers or >> ‘...’ before ‘jsize’ >> [exec] JavaxUsbChecks.h:130: error: expected declaration specifiers or >> ‘...’ before ‘jsize’ >> [exec] JavaxUsbChecks.h:130: error: expected declaration specifiers or >> ‘...’ before ‘jbyte’ >> [exec] JavaxUsbChecks.h: In function ‘debugGetByteArrayRegion’: >> [exec] JavaxUsbChecks.h:132: error: ‘env’ undeclared (first use in this >> function) >> [exec] JavaxUsbChecks.h:132: error: ‘array’ undeclared (first use in >> this function) >> [exec] JavaxUsbChecks.h:132: error: ‘offset’ undeclared (first use in >> this function) >> [exec] JavaxUsbChecks.h:132: error: ‘length’ undeclared (first use in >> this function) >> [exec] JavaxUsbChecks.h:132: error: ‘buffer’ undeclared (first use in >> this function) >> [exec] JavaxUsbChecks.h: At top level: >> [exec] JavaxUsbChecks.h:136: error: expected declaration specifiers or >> ‘...’ before ‘JNIEnv’ >> [exec] JavaxUsbChecks.h:136: error: expected declaration specifiers or >> ‘...’ before ‘jbyteArray’ >> [exec] JavaxUsbChecks.h:136: error: expected declaration specifiers or >> ‘...’ before ‘jsize’ >> [exec] JavaxUsbChecks.h:136: error: expected declaration specifiers or >> ‘...’ before ‘jsize’ >> [exec] JavaxUsbChecks.h:136: error: expected declaration specifiers or >> ‘...’ before ‘jbyte’ >> [exec] JavaxUsbChecks.h: In function ‘debugSetByteArrayRegion’: >> [exec] JavaxUsbChecks.h:138: error: ‘env’ undeclared (first use in this >> function) >> [exec] JavaxUsbChecks.h:138: error: ‘array’ undeclared (first use in >> this function) >> [exec] JavaxUsbChecks.h:138: error: ‘offset’ undeclared (first use in >> this function) >> [exec] JavaxUsbChecks.h:138: error: ‘length’ undeclared (first use in >> this function) >> [exec] JavaxUsbChecks.h:138: error: ‘buffer’ undeclared (first use in >> this function) >> [exec] JavaxUsbChecks.h: At top level: >> [exec] JavaxUsbChecks.h:142: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘debugGetArrayLength’ >> [exec] JavaxUsbChecks.h:149: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘debugGetStaticMethodID’ >> [exec] JavaxUsbChecks.h:156: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or >> ‘__attribute__’ before ‘debugGetStaticFieldID’ >> [exec] In file included from JavaxUsbKernel.c:11: >> [exec] JavaxUsb.h:109: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:110: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:112: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:113: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:115: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:116: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:118: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:119: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:121: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:122: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:124: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:125: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:126: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:127: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:129: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:130: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:131: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:132: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:192: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:193: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:203: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:230: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:246: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsb.h:260: error: expected ‘)’ before ‘*’ token >> [exec] JavaxUsbKernel.c: In function ‘setKernelVersion’: >> [exec] JavaxUsbKernel.c:38: error: ‘tracing’ undeclared (first use in >> this function) >> [exec] JavaxUsbKernel.c:38: error: ‘trace_xfer’ undeclared (first use >> in this function) >> [exec] JavaxUsbKernel.c:38: error: ‘JNI_TRUE’ undeclared (first use in >> this function) >> [exec] JavaxUsbKernel.c:38: error: ‘trace_flush’ undeclared (first use >> in this function) >> [exec] JavaxUsbKernel.c:38: error: ‘trace_hotplug’ undeclared (first >> use in this function) >> [exec] JavaxUsbKernel.c:38: error: ‘trace_urb’ undeclared (first use in >> this function) >> [exec] JavaxUsbKernel.c:38: error: ‘trace_default’ undeclared (first >> use in this function) >> [exec] make: *** [JavaxUsbKernel.o] Error 1 >> >> BUILD FAILED >> /home/administrator/Desktop/JSR/javax-usb-ri-linux/build.xml:116: exec >> returned: 2 >> >> Total time: 4 seconds >> >> >> >> ------------------------------------------------------------------------------ >> Crystal Reports - New Free Runtime and 30 Day Trial >> Check out the new simplified licensign option that enables unlimited >> royalty-free distribution of the report engine for externally facing >> server and web deployment. >> http://p.sf.net/sfu/businessobjects >> _______________________________________________ >> javax-usb-devel mailing list >> javax-usb-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/javax-usb-devel >> >> > ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensign option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ javax-usb-devel mailing list javax-usb-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/javax-usb-devel