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途径相关推荐

  1. JAVA中两个char类型相加_【技术干货】Java 面试宝典:Java 基础部分(1)

    海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...

  2. Java中创建线程需要使用的类_如何通过使用Java中的匿名类创建线程?

    甲线程是可以同时与该程序的其他部分被执行的功能.所有Java程序都有至少一个称为主线程的线程,该线程由Java虚拟机(JVM)在程序启动时由主线程调用main()方法创建. 在Java中,我们可以通过 ...

  3. java中bigdecimal除以int类型的数据怎么实现_大部分Java程序员都会忽略的几个问题,你中招没?...

    1. 正确使用 equals 方法 Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals. 举个例子: 运行上面的程序会抛出空指针异常,但是我们把第二行的条件 ...

  4. java中怎样存储遍历的数据_【数据算法】Java实现二叉树存储以及遍历

    二叉树在java中我们使用数组的形式保存原数据,这个数组作为二叉树的数据来源,后续对数组中的数据进行节点化操作. 步骤就是原数据:数组 节点化数据:定义 Node节点对象 存储节点对象:通过Linke ...

  5. java中接口什么时候用_我什么时候应该在java中使用接口?

    在Java中精确使用接口的一个很好的例子将是理想的,适用于任何特定的规则. 看看丹以前所有的问题,他似乎只是逐字逐句地张贴家庭作业/考试问题. 令人惊讶的是,这些不是考试题或其他-今天才找到这个网站, ...

  6. java中形参不可以是对象吗_(重要)java都是值传递,与对象形参所指向的对象改变,其实参所指向的对象也相应改变并不矛盾(2011年9.30日一天写的两个程序的总结结果)...

    1.0建立二叉树的代码,在java中必须创建二叉树的方法必须用返回值,因为不存在c语言中的引用传递,在java中只有值传递 代码1为正确,代码2(没有使用返回值)为错误.那么为什么之前的例子中将对象作 ...

  7. java中map可以为空吗_检查NavigableMap是否在Java中为空

    Java中使用isEmpty()方法检查NavigableMap是否为空. 首先,创建一个NavigableMap并向其中添加元素-NavigableMap n = new TreeMap(); n. ...

  8. 在java中私有方法能被重载吗_我可以在Java中重载私有方法吗?

    重载是实现多态的一种机制,其中,一个类包含两个具有相同名称和不同参数的方法. 每当您调用此方法时,方法主体都将基于参数与方法调用绑定. 重载私有方法 是的,我们可以在Java中重载私有方法,但是您可以 ...

  9. java中使用es的dsl_基于DSL的基于图论的Java程序中输入图数据的方法

    java中使用es的dsl 我们大多数人已经编写了一些处理图论算法的程序,例如找到两个顶点之间的最短路径,找到给定图的最小生成树等等. 在这些算法的每一种中,表示图形的编程方式是使用邻接矩阵或邻接列表 ...

  10. java中double类型占几个字节_面试官:Java 中有几种基本数据类型是什么?各自占用多少字节?...

    认识基本数据类型 在学习基本数据类型之前,我们先认识一下这两个单词:1.bit --位:位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为"0"或"1&quo ...

最新文章

  1. java 模拟get登录_java 模拟get请求
  2. .ajax显示加载动画,jQuery Ajax 加载数据时异步显示加载动画
  3. jdbc.properties 配置
  4. 百度 UNIT 技术负责人揭秘:如何让你的对话系统更智能
  5. 波卡链Substrate (3)SRML框架
  6. C#使用RSA加密解密文件
  7. MySQL数据库:索引的实现原理
  8. 数据库元数据数据字典查询_7_列出给定表的检查约束
  9. [你必须知道的.NET]第十回:品味类型---值类型与引用类型(下)-应用征途
  10. ipad怎么连接电脑_苹果连接电脑没反应怎么办
  11. 正在等待缓存锁:无法获得锁_一句话说清分布式锁,进程锁,线程锁
  12. 最新 IDEA 2022.1 版本即将发布,骚操作真不少...
  13. ubuntu 本地源搭建
  14. matlab2012安装过程中退出,Matlab 2012安装图解
  15. lavaral中文手册_Laravel5.6中文文档下载
  16. Arm 架构的过程调用标准
  17. dell服务器面板不显示,戴尔服务器控制提示面板没有安装怎么处理
  18. screen 使用命令
  19. 微信小程序扫描小程序码进入,模拟器模拟进入
  20. arcos的matlab定义,基于MATLAB编程软的齿轮设计

热门文章

  1. AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别
  2. 2022-2028年中国中医医疗机构行业投资策略探讨及市场规模预测报告
  3. 在Mac OSX下安装Microsoft Calibri字体
  4. oracle11g 建立全文索引
  5. ARM与Calxeda/华芯通
  6. java生成数字字母组合_java生成随机数字和字母组合
  7. Matplotlib 矢量场(quiver)
  8. ESXi 6.7.0含RTL8168驱动安装包(亲测可用)
  9. 网络营销推广怎么做 一封神奇的文案策划背后的真相
  10. 微机原理(FPGA设计CPU理解)