默认情况下,geoserver启动会去读取系统环境变量,JAVA_HOME``GEOSERVER_HOME``GEOSERVER_DATA_DIR
因此,方法1,直接修改环境变量来替换data_dir
,控制面板->系统(->系统)->高级系统设置->环境变量->系统或用户变量
方法2,这些处理语句写在 bin/start.bat
里,利用这点可以去自定义目录。
这里讲下法2,用到法2的情况多半是由于电脑上有多个geoserver或者多个项目共用一个geoserver 情况,为了方便管理不同项目的数据目录。
观察到start.bat
里有这么一段判断的语句,
:checkGeoServerHome
rem GEOSERVER_HOME not defined
if "%GEOSERVER_HOME%" == "" goto noHome
rem GEOSERVER_HOME defined incorrectly
if not exist "%GEOSERVER_HOME%\bin\startup.bat" goto badHome
:checkDataDir
rem GEOSERVER_DATA_DIR not defined
if "%GEOSERVER_DATA_DIR%" == "" goto noDataDir
goto setMarlinRenderer
因此只要在最前面把环境变量设置以下就可以了,语法类似SET XXX=XX
,这里直接将start.bat
里面设置的语句粘贴到前面,即使用根目录下data_dir
。
echo Temporarily setting GEOSERVER_HOME to the following directory:
cd ..
set GEOSERVER_HOME=%CD%
echo %GEOSERVER_HOME%
set GEOSERVER_DATA_DIR=%GEOSERVER_HOME%\data_dir
echo The GEOSERVER_DATA_DIR environment variable is not defined correctly.
echo Temporarily setting GEOSERVER_DATA_DIR to the following directory:
echo %GEOSERVER_DATA_DIR%
cd bin
echo.
要放在所有goto的前面,
这样要切换data_dir 只要多建几个start.bat 修改后启动对应的即可。
同理,更改JAVA_HOME
也只需要将对应版本的jdk压缩包解压到geoserver根目录,并设定相应的路径即可。
echo Temporarily setting GEOSERVER_HOME AND JAVA_HOME to the following directory:
cd ..
set GEOSERVER_HOME=%CD%
echo GEOSERVER_HOME: %GEOSERVER_HOME%
set GEOSERVER_DATA_DIR=%GEOSERVER_HOME%\data_dir
echo GEOSERVER_DATA_DIR: %GEOSERVER_DATA_DIR%
set JAVA_HOME=%GEOSERVER_HOME%\jdk-11.0.1
echo JAVA_HOME: %JAVA_HOME%
cd bin
echo.
标签:geoserver,echo,GEOSERVER,HOME,DATA,HOME%,DIR
From: https://www.cnblogs.com/madaao/p/18588404