如何在Tomcat中添加本机库?(How to add a native library in To

2019-07-17 13:30发布

我想在Tomcat中添加GDAL库。 我读了Tomcat中没有发现本地库 ,但不明白其中startup.bat我要补充-Djava.library.path

错误:

exception

javax.servlet.ServletException: Servlet execution threw an exception
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70)

root cause

java.lang.UnsatisfiedLinkError: org.gdal.ogr.ogrJNI.GetDriverCount()I
org.gdal.ogr.ogrJNI.GetDriverCount(Native Method)
org.gdal.ogr.ogr.GetDriverCount(ogr.java:98)
org.geotools.data.ogr.OGRDataStore.<clinit>(OGRDataStore.java:169)
test.Read.getKadnum(Read.java:56)
test.Zipper.mifUnzip(Zipper.java:139)
test.Zipper.Unzip(Zipper.java:60)
test.uploadfile.doPost(uploadfile.java:105)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.23 logs.

我下载@中64位来自: http://vbkto.dyndns.org:1280/sdk/PackageList.aspx?file=release-1600-x64-gdal-1-9-mapserver-6-2.zip

Answer 1:

它必须在设置catalina.bat代替的startup.bat。

set JAVA_OPTS="-Djava.library.path=/usr/tomcat/shared/lib"

之后就可以放

:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%


Answer 2:

接受答案(如2016年2月的)是完全错误的。

  • 永远应该编辑catalina.bat / catalina.sh 。 别 ! (Tomcat的唯一文件bin/目录,你都应该接触是setenv.bat )。

  • 正确的配置变量CATALINA_OPTS ,不JAVA_OPTS

  • 如果您使用的是Windows,那么你不想引用值的SET命令引号成为部分的实际值。 (不像在Unix / Linux)

  • 很可能你会想保留什么是已经在java.library.path

(在下文中我会认为你是在Windows上,相应更改Linux / Solaris中/ Mac OSX版)。

以下是如何做到这一点:将一个名为setenv.bat到同一目录catalina.bat 。 该文件将不存在,除非你自己创建它之前。 因此,创建该文件。 它必须有你的目的以下内容:

set CATALINA_OPTS=%CATALINA_OPTS% -Djava.library.path=%PATH%;c:\mydlls

在Windows上java.library.path将默认为%PATH%所以上述所有本来替代路线更改PATH环境变量。

如果你不希望有困惑正是在从那里JVM将加载您的本机库,然后忽略%PATH%; 部分从上述。 我个人省略%PATH%这个原因,但是这是口味的问题。



Answer 3:

据对catalina.bat中的意见,我认为正确的地方是CATALINA_OPTS。

rem   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
rem                   "run" or "debug" command is executed.
rem                   Include here and not in JAVA_OPTS all options, that should
rem                   only be used by Tomcat itself, not by the stop process,
rem                   the version command etc.
rem                   Examples are heap size, GC logging, JMX ports etc.


文章来源: How to add a native library in Tomcat?