Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > JSP > Web项目中用到JNI时应该注意的问题
【标  题】:Web项目中用到JNI时应该注意的问题
【关键字】:Web,Web,JNI
【来  源】:BLOG.YESKY.NET

Web项目中用到JNI时应该注意的问题

Your Ad Here


    JNI(Java Native Interface)应用程序一般是一个Java类,在这个类中定义了几个native方法,并在类的初始化过程中加载动态库,例如下面这个类

 

public class SystemInfo{
  static {
    System.loadLibrary("SystemInfo");
  }
  public static native long getPhysicalMemory();
}
 


    当Web项目用到该类并由于其他类的修改导致项目(context)重新加载,这个时候SystemInfo的初始化就会出异常,直接导致SystemInfo这个不可用,因为JNI中不允许一个动态库被加载两次,而且也没法通过程序来卸载前面所加载的动态库。

    怎么来解决因为context重新加载而导致JNI类无法试用的问题呢? 其实这个问题不难,我们只要不让JNI类重新加载即可。但是一般的应用服务器对Web项目中文件都是默认重新加载的,例如WEB-INF/classes以及WEB-INF/lib目录。如此我们便不能将JNI类放在这两个目录下,但是我们又必须保证这个JNI类能被Web项目的其他类引用到,因此这就需要参照不同应用服务器的类路径的说明进行设置,对于Tomcat而言,我们可以把这个JNI类单独打包并放在{tomcat}\common\lib目录下,并删除web项目中的这个JNI类即可解决前面提到的问题。

Web项目中用到JNI时应该注意的问题:【上一篇】
利用中间件构建网络应用:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • Linux网络编程常用函数小节
  • 安全小常识--消除IE记录中的个人信息
  • asp.net导出/导入规则的Excel(.xls)文件
  • PB编程技巧二则
  • 启动openfans网站和项目
  • 关闭Windows XP自动播放功能
  • 调整JVM ( v1.3.1) GC
  • Enums and Structs in C#
  • 逆向生成的Dimac.JMail工程及测试项目
  • Oracle两则小技巧——巧取指定的记录与巧用外关联查询
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.