网站如何做视频教程,郑州营销网站托管,翡翠原石网站首页怎么做,wordpress ffmpeg前些天在配置通过OCI的方式连接Oracle中曾进碰到一个关于“java.lang.UnsatisfiedLinkError: no XXX in java.library.path”这么一个问题#xff0c;这个问题纠结了许久才解决#xff0c;解决方式参考前面的文章。趁双休日好好的理解一下产生这个问题的来龙去脉。先看一段话… 前些天在配置通过OCI的方式连接Oracle中曾进碰到一个关于“java.lang.UnsatisfiedLinkError: no XXX in java.library.path”这么一个问题这个问题纠结了许久才解决解决方式参考前面的文章。 趁双休日好好的理解一下产生这个问题的来龙去脉。 先看一段话先 PATH is the environment variable. java.library.path is the system properties. When the java application started, JVM will set java.library.path’s value using PATH’s value. In java program, it’s very difficult to get the value of environment variables, but it’s very easy to get/set system properties. Use System.getProperty(”project_root”, “..”); System.setProperty(”project_root”, “..”); java.libaray.path 是system properties在windows系统通常是使用PATH的值而在Linux上是用LD_LIBRARY_PATH的值。 随便也说一下java.class.path他是对应于CLASSPATH中的值。 那LD_LIBRARY_PATH的值主要是干什么呢?他是来处理非标准路径下的”共享库“的可以理解成windows 的dll但在linux下是*.so的文件。 说完了基本的概念再来看看OCI是怎么连接Oracle的其实OCI是通过JNIjava native interface的方式来访问Oracle的请看下图 1我们知道Oracle的驱动是classes12.jarojdbc14.jar这里应该对应着java-class 2同样我们在JBOSS启动脚本中设置 JBOSS_NATIVE_DIR”/opt/instantclient_10_2″其实就是将LD_LIBRARY_PATH”/opt /instantclient_10_2″而在这个目录下有大量的*.so文件这些应该对应native 3至于jni-stub是一些存根文件可以参考一下JNI相关的说明这里就暂不描述了有时间可以再深入学习。 本文转自 神相 51CTO博客原文链接http://blog.51cto.com/shenxiang/269201如需转载请自行联系原作者