4 rem Licensed to the Apache Software Foundation (ASF) under one or more
5 rem contributor license agreements. See the NOTICE file distributed with
6 rem this work for additional information regarding copyright ownership.
7 rem The ASF licenses this file to You under the Apache License, Version 2.0
8 rem (the "License"); you may not use this file except in compliance with
9 rem the License. You may obtain a copy of the License at
11 rem http://www.apache.org/licenses/LICENSE-2.0
13 rem Unless required by applicable law or agreed to in writing, software
14 rem distributed under the License is distributed on an "AS IS" BASIS,
15 rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 rem See the License for the specific language governing permissions and
17 rem limitations under the License.
20 if not "%ECHO%" == "" echo %ECHO%
27 rem Sourcing environment settings for karaf similar to tomcats setenv
28 SET KARAF_SCRIPT="karaf.bat"
29 if exist "%DIRNAME%setenv.bat" (
30 call "%DIRNAME%setenv.bat"
33 rem Check console window title. Set to Karaf by default
34 if not "%KARAF_TITLE%" == "" (
40 rem Check/Set up some easily accessible MIN/MAX params for JVM mem usage
41 if "%JAVA_MIN_MEM%" == "" (
44 if "%JAVA_MAX_MEM%" == "" (
56 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
58 if not "%KARAF_HOME%" == "" (
59 call :warn Ignoring predefined value for KARAF_HOME
61 set KARAF_HOME=%DIRNAME%..
62 if not exist "%KARAF_HOME%" (
63 call :warn KARAF_HOME is not valid: "%KARAF_HOME%"
67 if not "%KARAF_BASE%" == "" (
68 if not exist "%KARAF_BASE%" (
69 call :warn KARAF_BASE is not valid: "%KARAF_BASE%"
73 if "%KARAF_BASE%" == "" (
74 set "KARAF_BASE=%KARAF_HOME%"
77 if not "%KARAF_DATA%" == "" (
78 if not exist "%KARAF_DATA%" (
79 call :warn KARAF_DATA is not valid: "%KARAF_DATA%"
83 if "%KARAF_DATA%" == "" (
84 set "KARAF_DATA=%KARAF_BASE%\data"
87 if not "%KARAF_ETC%" == "" (
88 if not exist "%KARAF_ETC%" (
89 call :warn KARAF_ETC is not valid: "%KARAF_ETC%"
93 if "%KARAF_ETC%" == "" (
94 set "KARAF_ETC=%KARAF_BASE%\etc"
97 set LOCAL_CLASSPATH=%CLASSPATH%
100 set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
101 set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
103 if "%LOCAL_CLASSPATH%" == "" goto :KARAF_CLASSPATH_EMPTY
104 set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
105 goto :KARAF_CLASSPATH_END
106 :KARAF_CLASSPATH_EMPTY
107 set CLASSPATH=%KARAF_BASE%\conf
111 if exist "%KARAF_HOME%\conf\karaf-rc.cmd" call %KARAF_HOME%\conf\karaf-rc.cmd
112 if exist "%HOME%\karaf-rc.cmd" call %HOME%\karaf-rc.cmd
114 rem Support for loading native libraries
115 set PATH=%PATH%;%KARAF_BASE%\lib;%KARAF_HOME%\lib
117 rem Setup the Java Virtual Machine
118 if not "%JAVA%" == "" goto :Check_JAVA_END
119 if not "%JAVA_HOME%" == "" goto :TryJDKEnd
120 call :warn JAVA_HOME not set; results may vary
122 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment"
123 if not exist __reg1.txt goto :TryJDK
124 type __reg1.txt | find "CurrentVersion" > __reg2.txt
125 if errorlevel 1 goto :TryJDK
126 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x
127 if errorlevel 1 goto :TryJDK
128 set JavaTemp=%JavaTemp%##
129 set JavaTemp=%JavaTemp: ##=##%
130 set JavaTemp=%JavaTemp: ##=##%
131 set JavaTemp=%JavaTemp: ##=##%
132 set JavaTemp=%JavaTemp: ##=##%
133 set JavaTemp=%JavaTemp: ##=##%
134 set JavaTemp=%JavaTemp:##=%
137 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\%JavaTemp%"
138 if not exist __reg1.txt goto :TryJDK
139 type __reg1.txt | find "JavaHome" > __reg2.txt
140 if errorlevel 1 goto :TryJDK
141 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x
142 if errorlevel 1 goto :TryJDK
147 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit"
148 if not exist __reg1.txt (
151 type __reg1.txt | find "CurrentVersion" > __reg2.txt
155 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x
159 set JavaTemp=%JavaTemp%##
160 set JavaTemp=%JavaTemp: ##=##%
161 set JavaTemp=%JavaTemp: ##=##%
162 set JavaTemp=%JavaTemp: ##=##%
163 set JavaTemp=%JavaTemp: ##=##%
164 set JavaTemp=%JavaTemp: ##=##%
165 set JavaTemp=%JavaTemp:##=%
168 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\%JavaTemp%"
169 if not exist __reg1.txt (
172 type __reg1.txt | find "JavaHome" > __reg2.txt
176 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x
183 rem try getting the JAVA_HOME from registry
184 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion`) DO (
187 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%JAVA_VERSION%" /v JavaHome`) DO (
188 set JAVA_HOME=%%A %%B
190 if not exist "%JAVA_HOME%" (
195 rem try getting the JAVA_HOME from registry
196 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit" /v CurrentVersion`) DO (
199 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit\%JAVA_VERSION%" /v JavaHome`) DO (
200 set JAVA_HOME=%%A %%B
202 if not exist "%JAVA_HOME%" (
203 call :warn Unable to retrieve JAVA_HOME from Registry
207 if not exist "%JAVA_HOME%" (
208 call :warn JAVA_HOME is not valid: "%JAVA_HOME%"
211 set JAVA=%JAVA_HOME%\bin\java
214 if not exist "%JAVA_HOME%\bin\server\jvm.dll" (
215 if not exist "%JAVA_HOME%\jre\bin\server\jvm.dll" (
216 echo WARNING: Running Karaf on a Java HotSpot Client VM because server-mode is not available.
217 echo Install Java Developer Kit to fix this.
218 echo For more details see http://java.sun.com/products/hotspot/whitepaper.html#client
219 set JAVA_MODE=-client
223 set DEFAULT_JAVA_OPTS=%JAVA_MODE% -Xms%JAVA_MIN_MEM% -Xmx%JAVA_MAX_MEM% -Dderby.system.home="%KARAF_DATA%\derby" -Dderby.storage.fileSyncTransactionLog=true -Dcom.sun.management.jmxremote -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass
225 if not "%ODL_JAVA_SECURITY_PROPERTIES%" == "" (
226 set DEFAULT_JAVA_OPTS=-Djava.security.properties="%ODL_JAVA_SECURITY_PROPERTIES%" %DEFAULT_JAVA_OPTS%
228 set DEFAULT_JAVA_OPTS=-Djava.security.properties="%KARAF_ETC%\odl.java.security" %DEFAULT_JAVA_OPTS%
231 rem Check some easily accessible MIN/MAX params for JVM mem usage
232 if not "%JAVA_PERM_MEM%" == "" (
233 set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=%JAVA_PERM_MEM%
235 if not "%JAVA_MAX_PERM_MEM%" == "" (
236 set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM%
239 if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%
241 if "%EXTRA_JAVA_OPTS%" == "" goto :KARAF_EXTRA_JAVA_OPTS_END
242 set JAVA_OPTS=%JAVA_OPTS% %EXTRA_JAVA_OPTS%
243 :KARAF_EXTRA_JAVA_OPTS_END
245 if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END
246 if "%1" == "stop" goto :KARAF_DEBUG_END
247 if "%1" == "client" goto :KARAF_DEBUG_END
248 rem Use the defaults if JAVA_DEBUG_OPTS was not set
249 if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
251 set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
252 call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%
255 if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END
256 set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd
258 if exist "%KARAF_PROFILER_SCRIPT%" goto :KARAF_PROFILER_END
259 call :warn Missing configuration for profiler '%KARAF_PROFILER%': %KARAF_PROFILER_SCRIPT%
263 rem Setup the classpath
264 pushd "%KARAF_HOME%\lib"
265 for %%G in (karaf*.jar) do call:APPEND_TO_CLASSPATH %%G
269 : APPEND_TO_CLASSPATH
271 set suffix=%filename:~-4%
272 if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\%filename%
277 rem Execute the JVM or the load the profiler
278 if "%KARAF_PROFILER%" == "" goto :RUN
279 rem Execute the profiler if it has been configured
280 call :warn Loading profiler script: %KARAF_PROFILER_SCRIPT%
281 call %KARAF_PROFILER_SCRIPT%
284 SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true
285 SET MAIN=org.apache.karaf.main.Main
289 if "%1" == "stop" goto :EXECUTE_STOP
290 if "%1" == "status" goto :EXECUTE_STATUS
291 if "%1" == "console" goto :EXECUTE_CONSOLE
292 if "%1" == "server" goto :EXECUTE_SERVER
293 if "%1" == "client" goto :EXECUTE_CLIENT
294 if "%1" == "clean" goto :EXECUTE_CLEAN
295 if "%1" == "debug" goto :EXECUTE_DEBUG
299 SET MAIN=org.apache.karaf.main.Stop
304 SET MAIN=org.apache.karaf.main.Status
313 SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
318 SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false
323 rmdir /S /Q "%KARAF_DATA%"
328 if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
329 set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
334 SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8
335 rem Execute the Java Virtual Machine
337 "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;%KARAF_HOME%\lib\endorsed" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;%KARAF_HOME%\lib\ext" -Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" -Djava.io.tmpdir="%KARAF_DATA%\tmp" -Dkaraf.data="%KARAF_DATA%" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" %KARAF_OPTS% %MAIN% %ARGS%
339 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
345 if not "%PAUSE%" == "" pause