梦回编程- 由LD_LIBRARY_PATH引发JNI的理解

前些天在配置通过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是通过JNI(java native interface)的方式来访问Oracle的,请看下图
1)我们知道Oracle的驱动是classes12.jar(ojdbc14.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,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSDN博客文章阅读模式插件(附源码)

插件地址:https://greasyfork.org/zh-CN/scripts/380667-csdn%E5%8D%9A%E5%AE%A2%E9%98%85%E8%AF%BB%E6%A8%A1%E5%BC%8F%E5%88%87%E6%8D%A2%E6%8F%92%E4%BB%B6 插件安装使用说明请参阅:https://greasyfork.org/zh-CN 浏览器(正常&#xff09…

C语言试题六十一之请编写函数fun:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写函数…

【ArcGIS风暴】ArcGIS tif转jpg:JPEG压缩仅支持8位或16位无符号数据(具有一个或三个波段,且没有色彩映射表)解决方案!

扩展阅读:【ArcGIS风暴】ArcGIS支持的栅格数据格式大全及格式转换案例精解 文章目录 问题描述tif格式和JPEG格式详解ArcGIS软件tif转jpg方法总结问题描述 如下图所示,在ArcGIS中将tif格式的无人机影像数据导出为Jpg格式时,提示:JPEG压缩仅支持8位或16位无符号数据(具有一…

CF374 Maxim and Array

贪心 如果有0先变成非0 如果负数的个数 应该变为偶数 之后就是每次将绝对值最小的值加K #include<bits/stdc.h> using namespace std; const int MAXN 2e55; typedef long long ll;int N,K,X; ll A[MAXN]; int tag[MAXN]; struct Node{ll x; int id;Node(ll a0, int …

Blazor University (29)表单 —— 编辑表单数据

原文链接&#xff1a;https://blazor-university.com/forms/editing-form-data/编辑表单数据源代码[1]因为 EditForm 组件呈现标准的 <form> HTML 元素&#xff0c;实际上可以在我们的标记中使用标准的 HTML 表单元素&#xff0c;例如 <input> 和 <select>&a…

广州Uber优步司机奖励政策(1月4日~1月10日)

滴快车单单2.5倍&#xff0c;注册地址&#xff1a;http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单&#xff1a;http://www.cnblogs.com/mfryf/p/4612609.html 优步奖励低/不挣钱/怎么办?看这里&#xff1a;http://www.cnblogs.com/mfry…

10 关联模型《ThinkPHP6 入门到电商实战》

一、什么是关联模型 关联模型指在 tp 中使用模型对多个数据表进行关联。例如一个主账户表与一个账户信息表进行关联&#xff0c;此时两者关联后可以更加简便的进行操作&#xff0c;使代码更加清晰&#xff0c;操作更加简便。 二、 正向一对一关联 一对一关联指的是数据只有一…

阿里云云计算ACP考试知识点(标红为重点)

阿里云云计算专业认证考试&#xff08;ACP&#xff09;&#xff08;ECS&#xff09; 什么是云服务器 ECS 云服务器 Elastic Compute Service&#xff08;ECS&#xff09;是阿里云提供的一种基础云计算服务。使用云服务器 ECS 就像使用水、电、煤气等资源一样便捷、高效。您无需…

C语言试题六十二之请编写函数fun除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串第一个字母,形参p已指向字符串中最后一个字母。在编写程序时,不得使用c语言提供的字符串函数。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写函数…

Android 整体设计及背后意义

目录 1. Android设计的现实意义 1.1 发展的前提&#xff1a;硬件抽象 1.2 能力的枢纽&#xff1a;组件化 1.3 应用的基础-接口层 2. 对于我们的象征意义和实践 3. 小结 阿里妹导读&#xff1a;现实工作中经常可以听到这样的说法&#xff1a;框架的升级带来协议性能的提升…

数学的意蕴与价值(建议收藏)

数学的意蕴与价值,内容包括数学运算、长度面积等位换算等等,建议收藏。 意蕴1: 1x8+1=912x8+2=98123x8+3=9871234x8+4=987612345x8+5=98765123456x8+6=9876541234567x8+7=987654312345678x8+8=98765432123456789x8+9=987654321意蕴2: 1x9+2=1112x9+3=111123x9+4=11111234x9…

85、交换机安全MAC层***配置实验之Port-Security

1、Port Security解析触发Port Security的条件&#xff1a;未授权的MAC地址端口MAC地址数量超过了限制触发Port Security后的动作&#xff1a;protect Security violation protect mode 丢弃数据&#xff0c;不发送SNMP Trap消息 restrict Security violation restr…

C#-Linq源码解析之Concat

前言在Dotnet开发过程中&#xff0c;Concat作为IEnumerable的扩展方法&#xff0c;十分常用。本文对Concat方法的关键源码进行简要分析&#xff0c;以方便大家日后更好的使用该方法。使用Concat 连接两个序列。假如我们有这样的两个集合&#xff0c;我们需要把两个集合进行连接…

11 验证器《ThinkPHP6 入门到电商实战》

注&#xff1a;示例来源于官方手册 一、验证器定义 验证器用于对数据进行验证&#xff0c;你可以理解为一个“层”&#xff0c;在传入数据时可以使用这个层对数据进行验证&#xff0c;这样就可以不用频繁的在方法中编写代码去验证&#xff0c;只需要编写一个验证层即可&#…

合作开发和委托开发完成成果的归属

据专利法第8条的规定&#xff1a;“两个以上单位或者个人合作完成的发明创造、一个单位或者个人接受其他单位或者个人委托所完成的发明创造&#xff0c;除另有协议的以外&#xff0c;申请专利的权利属于完成或者共同完成的单位或者个人&#xff1b;申请被批准后&#xff0c;申请…

C语言试题六十三之请编写函数fun:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

1、 题目 请编写函数fun,其功能是:将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 2 、温馨提示 C语言试题汇总里可用于计算机二级C语言笔试、机试、研究生复试中C程序设计科目、帮助C语言学者打好程序基础、C语言基础,锻炼您…

nginx+php

nginxphp基础架构 生产实践 nginx配置文件: 主配置文件 123456789101112131415161718192021222324252627282930313233[rootlinux-node1 conf.d]# cat /etc/nginx/nginx.conf user nginx;worker_processes auto;error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load…

【ArcGIS风暴】ArcGIS10.8中栅格数据金字塔的来龙去脉,你知道吗?

如下图所示,通常情况下,当将没有金字塔的栅格数据集添加至 ArcGIS时,系统将提示您构建金字塔。金字塔指不同比例下分辨率降低的数据概视图。金字塔十分有用,因为金字塔提升了分辨率低于其全分辨率的栅格数据集的绘制速度。建议构建用于大型栅格数据集的金字塔。 点击【是】…

斯坦福大学Andrew Ng - 机器学习笔记(8) -- 推荐系统 大规模机器学习 图片文字识别...

大概用了一个月&#xff0c;Andrew Ng老师的机器学习视频断断续续看完了&#xff0c;以下是个人学习笔记&#xff0c;入门级别&#xff0c;权当总结。笔记难免有遗漏和误解&#xff0c;欢迎讨论。 鸣谢&#xff1a;中国海洋大学黄海广博士提供课程视频和个人笔记&#xff0c;在…

表单按钮实现 type=image

<input type"image" src"http://img01.51jobcdn.com/im/2012/index/main_login_btn.gif" border"0" οnfοcus"blur()">转载于:https://www.cnblogs.com/zxmbest1/p/5121666.html