java中library找不到了,java web 找不到java.library.path途径
java web 找不到java.library.path路径
项目是在window下开发的,现在放到linux下部署需要加载一个.so的文件,但是调用
System.loadLibrary("xxxx");main方法可以找到,就在当前目录,但是放到web项目里就找不到这个xxx文件了,报错no xxx in java.library.path
我打印出了这个路径,放进去也找不到!
路径如下:
/usr/java/jdk1.6.0_35/jre/lib/amd64/server:/usr/java/jdk1.6.0_35/jre/lib/amd64:/usr/java/jdk1.6.0_35/jre/../lib/amd64:/usr/local/resin/libexec64:/usr/java/jdk1.6.0_35/jre/lib/amd64/server:/usr/java/jdk1.6.0_35/jre/lib/amd64:/usr/java/jdk1.6.0_35/jre/../lib/amd64:/usr/local/resin/webapps/ROOT/trialSys/trialDBInterface/WEB-INF/classes::/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
------解决方案--------------------
加载路径不对。
你开发测试的时候是 eclipse,System.loadLibrary("xxxx") 加载,当然没问题。
但是部署以后,System.loadLibrary("xxxx") 就不行了,你需要这样:
static {
try {
System.loadLibrary("crypt"); // used for tests. This library in classpath only
} catch (UnsatisfiedLinkError e) {
try {
NativeUtils.loadLibraryFromJar("/natives/crypt.dll"); // during runtime. .DLL within .JAR
} catch (IOException e1) {
throw new RuntimeException(e1);
}
}
}
NativeUtils 源码参考:
package cz.adamh.utils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* Simple library class for working with JNI (Java Native Interface)
*
* @see http://frommyplayground.com/how-to-load-native-jni-library-from-jar
*
* @author Adam Heirnich , http://www.adamh.cz
*/
public class NativeUtils {
/**
* Private constructor - this class will never be instanced
*/
private NativeUtils() {
}
/**
* Loads library from current JAR archive
*
* The file from JAR is copied into system temporary directory and then loaded. The temporary file is deleted after exiting.
* Method uses String as filename because the pathname is "abstract", not system-dependent.
*
* @param filename The filename inside JAR as absolute path (beginning with '/'), e.g. /package/File.ext
* @throws IOException If temporary file creation or read/write operation fails
* @throws IllegalArgumentException If source file (param path) does not exist
* @throws IllegalArgumentException If the path is not absolute or if the filename is shorter than three characters (restriction of {@see File#createTempFile(java.lang.String, java.lang.String)}).
*/
public static void loadLibraryFromJar(String path) throws IOException {
if (!path.startsWith("/")) {
throw new IllegalArgumentException("The path to be absolute (start with '/').");
}
// Obtain filename from path
String[] parts = path.split("/");
String filename = (parts.length > 1) ? parts[parts.length - 1] : null;
// Split filename to prexif and suffix (extension)
String prefix = "";
String suffix = null;
if (filename != null) {
parts = filename.split("\\.", 2);
prefix = parts[0];
suffix = (parts.length > 1) ? "."+parts[parts.length - 1] : null; // Thanks, davs! :-)
java中library找不到了,java web 找不到java.library.path途径相关推荐
- JAVA中两个char类型相加_【技术干货】Java 面试宝典:Java 基础部分(1)
海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...
- Java中创建线程需要使用的类_如何通过使用Java中的匿名类创建线程?
甲线程是可以同时与该程序的其他部分被执行的功能.所有Java程序都有至少一个称为主线程的线程,该线程由Java虚拟机(JVM)在程序启动时由主线程调用main()方法创建. 在Java中,我们可以通过 ...
- java中bigdecimal除以int类型的数据怎么实现_大部分Java程序员都会忽略的几个问题,你中招没?...
1. 正确使用 equals 方法 Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals. 举个例子: 运行上面的程序会抛出空指针异常,但是我们把第二行的条件 ...
- java中怎样存储遍历的数据_【数据算法】Java实现二叉树存储以及遍历
二叉树在java中我们使用数组的形式保存原数据,这个数组作为二叉树的数据来源,后续对数组中的数据进行节点化操作. 步骤就是原数据:数组 节点化数据:定义 Node节点对象 存储节点对象:通过Linke ...
- java中接口什么时候用_我什么时候应该在java中使用接口?
在Java中精确使用接口的一个很好的例子将是理想的,适用于任何特定的规则. 看看丹以前所有的问题,他似乎只是逐字逐句地张贴家庭作业/考试问题. 令人惊讶的是,这些不是考试题或其他-今天才找到这个网站, ...
- java中形参不可以是对象吗_(重要)java都是值传递,与对象形参所指向的对象改变,其实参所指向的对象也相应改变并不矛盾(2011年9.30日一天写的两个程序的总结结果)...
1.0建立二叉树的代码,在java中必须创建二叉树的方法必须用返回值,因为不存在c语言中的引用传递,在java中只有值传递 代码1为正确,代码2(没有使用返回值)为错误.那么为什么之前的例子中将对象作 ...
- java中map可以为空吗_检查NavigableMap是否在Java中为空
Java中使用isEmpty()方法检查NavigableMap是否为空. 首先,创建一个NavigableMap并向其中添加元素-NavigableMap n = new TreeMap(); n. ...
- 在java中私有方法能被重载吗_我可以在Java中重载私有方法吗?
重载是实现多态的一种机制,其中,一个类包含两个具有相同名称和不同参数的方法. 每当您调用此方法时,方法主体都将基于参数与方法调用绑定. 重载私有方法 是的,我们可以在Java中重载私有方法,但是您可以 ...
- java中使用es的dsl_基于DSL的基于图论的Java程序中输入图数据的方法
java中使用es的dsl 我们大多数人已经编写了一些处理图论算法的程序,例如找到两个顶点之间的最短路径,找到给定图的最小生成树等等. 在这些算法的每一种中,表示图形的编程方式是使用邻接矩阵或邻接列表 ...
- java中double类型占几个字节_面试官:Java 中有几种基本数据类型是什么?各自占用多少字节?...
认识基本数据类型 在学习基本数据类型之前,我们先认识一下这两个单词:1.bit --位:位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为"0"或"1&quo ...
最新文章
- java 模拟get登录_java 模拟get请求
- .ajax显示加载动画,jQuery Ajax 加载数据时异步显示加载动画
- jdbc.properties 配置
- 百度 UNIT 技术负责人揭秘:如何让你的对话系统更智能
- 波卡链Substrate (3)SRML框架
- C#使用RSA加密解密文件
- MySQL数据库:索引的实现原理
- 数据库元数据数据字典查询_7_列出给定表的检查约束
- [你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途
- ipad怎么连接电脑_苹果连接电脑没反应怎么办
- 正在等待缓存锁:无法获得锁_一句话说清分布式锁,进程锁,线程锁
- 最新 IDEA 2022.1 版本即将发布,骚操作真不少...
- ubuntu 本地源搭建
- matlab2012安装过程中退出,Matlab 2012安装图解
- lavaral中文手册_Laravel5.6中文文档下载
- Arm 架构的过程调用标准
- dell服务器面板不显示,戴尔服务器控制提示面板没有安装怎么处理
- screen 使用命令
- 微信小程序扫描小程序码进入,模拟器模拟进入
- arcos的matlab定义,基于MATLAB编程软的齿轮设计
热门文章
- AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别
- 2022-2028年中国中医医疗机构行业投资策略探讨及市场规模预测报告
- 在Mac OSX下安装Microsoft Calibri字体
- oracle11g 建立全文索引
- ARM与Calxeda/华芯通
- java生成数字字母组合_java生成随机数字和字母组合
- Matplotlib 矢量场(quiver)
- ESXi 6.7.0含RTL8168驱动安装包(亲测可用)
- 网络营销推广怎么做 一封神奇的文案策划背后的真相
- 微机原理(FPGA设计CPU理解)