JNI code in Windows works with PATH but not java.library.path -
java 1.6 on windows working java library uses jni. want point @ dll's using java.library.path environment variable, doesn't work. when put same paths in path variable, works fine.
successful case:
c:>set path=\progra~1\company\compan~1\lib;\progra~1\java\jdk1.6.0_43\bin
(setting path without drive or spaces try avoid space issues, though jars , libraries on c drive)
java -cp %classpath% com.company.samples.ft.mainclass
unsuccessful case 1:
set path=\progra~1\java\jdk1.6.0_43\bin c:>java -djava.library.path=\progra~1\company\compan~1\lib -cp %classpath% com.company.samples.ft.mainclass ft\ft.cfg not load base company api library exception in thread "main" java.lang.unsatisfiedlinkerror: c:\program files\company\company client api\lib\companyapi.dll: can't find dependent libraries @ java.lang.classloader$nativelibrary.load(native method) @ java.lang.classloader.loadlibrary0(classloader.java:1807) @ java.lang.classloader.loadlibrary(classloader.java:1732) @ java.lang.runtime.loadlibrary0(runtime.java:823) @ java.lang.system.loadlibrary(system.java:1028) @ com.company.api.companyclientapiimpl.(companyclientapiimpl.ja va:113) @ com.company.samples.ft.mainclass.run(mainclass.java:130) @ com.company.samples.ft.mainclass.main(mainclass.java:498)
note here did find dll not dependencies, though has library path original windows path. java.library.path still lack jdk path, , still in path variable, let's try adding java.library.path:
c:\program files\company\company client apis\samples\jcapi>java -djava.library.path=\progra~1\company\compan~1\lib;\progra~1\java\jdk1.6.0_43\bin -cp %classpath% com.company.samples.ft.mainclass not load base company api library exception in thread "main" java.lang.unsatisfiedlinkerror: c:\program files\company\company client api\lib\companyapi.dll: can't find dependent libraries @ java.lang.classloader$nativelibrary.load(native method) @ java.lang.classloader.loadlibrary0(classloader.java:1807) @ java.lang.classloader.loadlibrary(classloader.java:1732) @ java.lang.runtime.loadlibrary0(runtime.java:823) @ java.lang.system.loadlibrary(system.java:1028) @ com.company.api.companyclientapiimpl.(companyclientapiimpl.java:113) @ com.company.samples.ft.mainclass.run(mainclass.java:130) @ com.company.samples.ft.mainclass.main(mainclass.java:498)
so java.library.path looking original path, library not found. idea problem here?
thanks, mike
Comments
Post a Comment