Ответ 1
Он должен быть установлен в catalina.bat
вместо startup.bat.
set JAVA_OPTS="-Djava.library.path=/usr/tomcat/shared/lib"
можно поставить после
:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%
Я хочу добавить gdal-библиотеку в Tomcat. Я читал родные библиотеки, не найденные в 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.
Я загрузил gdal 64bit из: http://vbkto.dyndns.org:1280/sdk/PackageList.aspx?file=release-1600-x64-gdal-1-9-mapserver-6-2.zip
Он должен быть установлен в catalina.bat
вместо startup.bat.
set JAVA_OPTS="-Djava.library.path=/usr/tomcat/shared/lib"
можно поставить после
:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%
Принятый ответ (по состоянию на февраль 2016 года) просто неверен.
Вы никогда должны редактировать 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%
по этой причине, но это вопрос вкуса.
Согласно комментариям на 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.