在有几个应用中,在启动的时候发现下列警告:

The version of the script (3.5.29) doesn't match the version of this Wrapper (3.5.27). This might cause some problems
--> Wrapper Started as Daemon
Java Service Wrapper Community Edition 64-bit 3.5.27
Copyright (C) 1999-2015 Tanuki Software, Ltd. All Rights Reserved.
http://wrapper.tanukisoftware.com

Launching a JVM...
WrapperManager: Initializing...
WrapperManager:
WrapperManager: WARNING - Unable to load the Wrapper's native library because none of the
WrapperManager: following files:
WrapperManager: libwrapper-linux-x86-64.so
WrapperManager: libwrapper.so
WrapperManager: could be located on the following java.library.path:
WrapperManager: /data/src/osm-route/bin/../lib
WrapperManager: Please see the documentation for the wrapper.java.library.path
WrapperManager: configuration property.
WrapperManager: System signals will not be handled correctly.
WrapperManager:
17-02-04 11:26:13.164 INFO WrapperSimpleAppMain org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:578): Refreshing org.springframework.context.suppor
t.ClassPathXmlApplicationContext@6ca9bb2b: startup date [Sat Feb 04 11:26:13 CST 2017]; root of context hierarchy

但是,程序是可以正常起来的(如果不能起来,则多半不是因为缺少上面两个so之一的原因)。

于是,笔者再看了下几个其他应用的lib,如下:

[root@iZ23nn1p4mjZ lib]# ll
total 344
-rw-r--r-- 1 root root 44664 Jan 16 13:35 libwrapper.so
-rw-r--r-- 1 root root 67882 Jan 16 13:35 wrapperdemo.jar
-rw-r--r-- 1 root root 124041 Jan 16 13:35 wrapper.jar
-rw-r--r-- 1 root root 106706 Jan 16 13:35 wrappertest.jar
[root@iZ23nn1p4mjZ lib]# cd ../../osm-all/lib
[root@iZ23nn1p4mjZ lib]# ll
total 344
-rw-r--r-- 1 root root 44664 Jan 16 13:35 libwrapper.so
-rw-r--r-- 1 root root 67882 Jan 16 13:35 wrapperdemo.jar
-rw-r--r-- 1 root root 124041 Jan 16 13:35 wrapper.jar
-rw-r--r-- 1 root root 106706 Jan 16 13:35 wrappertest.jar
[root@iZ23nn1p4mjZ lib]# cd ../../osm-route/lib
[root@iZ23nn1p4mjZ lib]# ll
total 632
-rw-r--r-- 1 root root 67882 Jan 16 13:35 wrapperdemo.jar
-rw-r--r-- 1 root root 337176 Jan 16 13:35 wrapper.dll
-rw-r--r-- 1 root root 124041 Jan 16 13:35 wrapper.jar
-rw-r--r-- 1 root root 106706 Jan 16 13:35 wrappertest.jar
[root@iZ23nn1p4mjZ lib]# cd ../../osm-trade/lib
[root@iZ23nn1p4mjZ lib]# ll
total 344
-rw-r--r-- 1 root root 44664 Jan 16 13:35 libwrapper.so
-rw-r--r-- 1 root root 67882 Jan 16 13:35 wrapperdemo.jar
-rw-r--r-- 1 root root 124041 Jan 16 13:35 wrapper.jar
-rw-r--r-- 1 root root 106706 Jan 16 13:35 wrappertest.jar

其中一个确实没有libwrapper.so,再看下这个so的作用,如下:

The Java component of Java Service Wrapper requires that a native library be loaded to be able to handle system signals and perform other functions which are not possible using the Java API. This property allows the name of the library to be modified to suit the needs of a particular application. In general, most users should not need to use this property.

The Java language specifies some rules about how Java Native Libraries (JNI) can be named. The Wrapper's library is no exception and must follow these naming conventions.

To explain this, we will use the default base name "wrapper" as an example.

Example:
wrapper.native_library=wrapper
  • On Windows systems, the library file name will be "wrapper.dll".
  • On Mac OSX systems, the library file name will be "libwrapper.jnilib".
  • And on all other Linux/UNIX platforms, the library file name will be "libwrapper.so".

If this property is given any other value, that base-name will be used to construct the actual name of the native library file using the above rules.

Library Path:

Regardless of the name specified, the native library must be located within a directory specified using thewrapper.java.library.path.<n> property.

Platform specific native libraries:

The Wrapper also provides a facility to make it easy to create binary distributions that run on any platform, even if the application makes use of native libraries. In detail, see the Platform specific native libraries.

所以,其实libwrapper其实是处理平台相关的一些信号的,比如kill -N的个中含义。并不影响其本身,当然最好是应该有的。万一不见了的话,可以从官网http://wrapper.tanukisoftware.com/doc/english/download.jsp下载对应版本放进去就可以了。

Unable to load the Wrapper's native library because none of the following files及解决方法的更多相关文章

  1. fatal error: malformed or corrupted AST file: &#39;Unable to load module &quot;/Users/apple/Library/Developer

    在同一时候安装使用Xcode5, Xcode6之后, 常常遇到这个问题. fatal error: malformed or corrupted AST file: 'Unable to load m ...

  2. eclipse:运行 Android 项目时出现 “Unable to execute dex: Multiple dex files define” 解决方法

    android 项目在eclipse 出现Unable to execute dex: Multiple dex files define Conversion to Dalvik format fa ...

  3. Unable to execute dex: Multiple dex files define 解决方法

    程序编译正常,在用Eclipse调试执行时,报错Unable to execute dex: Multiple dex files define: 方法:      原因是有重复的.jar被引用,可以 ...

  4. [Android开发常见问题-11] Unable to execute dex: Multiple dex files define 解决方法

    最近在开发一个工程,其中用到了一个开源的库项目Android-ViewPagerIndicator. 这个项目是作为一个库出现的,如下图: 这个项目中包含了android-support-v4.jar ...

  5. 错误/异常:The project cannot be built until build path errors are resolved 和 Unbound classpath container: 'JRE System Library [JavaSE-1.7]' in project 'MyJavaCode';的解决方法

    错误1: The project cannot be built until build path errors are resolved 解决方法: 把java的类库加载进去即可,在工程上右键 选择 ...

  6. PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_mbstring.dll' 的解决方法

    step 1: cd /etc/php/{$yourphpversion}/cli step 2: sudo vim php.ini step 3: 在extension=php_mbstring.d ...

  7. 转:Unable to execute dex: Multiple dex files define 解决方法

    转自:http://blog.csdn.net/mxlxiao7/article/details/8978930 问题发生概述: 程序编译正常,在用Eclipse调试执行时,报错Unable to e ...

  8. XmlDocument.load 读文件报异常:文件正被其它线程使用,解决方法

    string filePath = Form1.getProjectFilePath(); System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocu ...

  9. Unable to execute dex:Multuple dex files define 解决方法

    困扰我两天的问题终于解决了,在网上查的方法无非有三种 一. Eclipse->Project->去掉Build Automatically->Clear ->Build Pro ...

随机推荐

  1. 疯狂java讲义 第三版 笔记

      java7新加特性: 0B010101  二进制数 int c=0B0111_1111;   数值中使用下划线分隔 switch 支持String类型   字符串常量放在常量池 String s0 ...

  2. (四)Web应用开发---系统架构图

    系统宏观架构:EASYUI+MVC 系统架构图一. 系统架构图二.

  3. 几个经典的css技巧

    使用 line-height 垂直居中 line-height:24px; 使用固定宽度的容器并且需要一行垂直居中时,使用 line-height 即可(高度与父层容器一致),更多的垂直居中总结可以看 ...

  4. Mirror--如何TSQL查看镜像状态和镜像相关存储过程

    --==================================================== --查看镜像状态 SELECT DB_NAME(database_id) AS Datab ...

  5. mysql 操作sql语句 操作数据表

    #2. 操作文件 先切换到文件夹下:use db1 查看当前所在的数据库 mysql> select database(); +------------+ | database() | +--- ...

  6. SqlServer--bat批处理执行sql语句1-osql

    首先需要知道,此处使用的批处理命令是osql ,如果安装了SqlServer,目录类似: D:\Program Files\Microsoft SQL Server\100\Tools\Binn 脚本 ...

  7. .NET Core 2.0 官方下载地址及中文教程

    开发.net core 应用需要安装.NET Core 2.0 SDK http://www.microsoft.com/net/download/core#/sdk 电脑上运行 .net core ...

  8. Miller_Rabbin算法判断大素数,Pollard_rho算法进行质因素分解

    Miller-rabin算法是一个用来快速判断一个正整数是否为素数的算法.它利用了费马小定理,即:如果p是质数,且a,p互质,那么a^(p-1) mod p恒等于1.也就是对于所有小于p的正整数a来说 ...

  9. golang语言中的context详解,Go Concurrency Patterns: Context

    https://blog.golang.org/context Introduction In Go servers, each incoming request is handled in its ...

  10. 使用免费的Let's Encrypt通配符证书 升级我们的网站

    Let's Encrypt通配符证书的官方启用日期:2018年3月13日 也就是说,2018年3月13日之后,我们就可以使用Let's Encrypt通配符证书了,当然是免费的. Let's Encr ...