Как добавить родную библиотеку в Tomcat?

Я хочу добавить библиотеку gdal в Tomcat. Я читаю Native-библиотеки, не найденные в 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.(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 . Не надо! (Единственный файл в bin/ dir Tomcat, который вы должны коснуться, – 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. 
  • Получить ServletContext в ресурсе JAX-RS
  • Нет типов Spring WebApplicationInitializer, обнаруженных на пути к classам
  • Как развернуть веб-приложение Java (.war) на tomcat?
  • Запуск JSF 2.0 на контейнере Servlet 2.4
  • java.lang.LinkageError: javax.servlet.jsp.JspApplicationContext.getExpressionFactory
  • h: inputText, привязанный к свойству String, представляет пустую строку вместо null
  • Томкат в Идеи. война взорвалась: сервер не подключен. Развертывание недоступно
  • getOutputStream () уже вызван для этого ответа
  • Как вызвать метод до уничтожения объекта сеанса?
  • Фильтр Tomcat CORS
  • Как настроить Tomcat для подключения к MySQL
  • Давайте будем гением компьютера.