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 if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%
233 if "%EXTRA_JAVA_OPTS%" == "" goto :KARAF_EXTRA_JAVA_OPTS_END
234 set JAVA_OPTS=%JAVA_OPTS% %EXTRA_JAVA_OPTS%
235 :KARAF_EXTRA_JAVA_OPTS_END
237 if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END
238 if "%1" == "stop" goto :KARAF_DEBUG_END
239 if "%1" == "client" goto :KARAF_DEBUG_END
240 rem Use the defaults if JAVA_DEBUG_OPTS was not set
241 if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
243 set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
244 call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%
247 if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END
248 set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd
250 if exist "%KARAF_PROFILER_SCRIPT%" goto :KARAF_PROFILER_END
251 call :warn Missing configuration for profiler '%KARAF_PROFILER%': %KARAF_PROFILER_SCRIPT%
255 rem Setup the classpath
256 pushd "%KARAF_HOME%\lib"
257 for %%G in (karaf*.jar) do call:APPEND_TO_CLASSPATH %%G
261 : APPEND_TO_CLASSPATH
263 set suffix=%filename:~-4%
264 if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\%filename%
269 rem Execute the JVM or the load the profiler
270 if "%KARAF_PROFILER%" == "" goto :RUN
271 rem Execute the profiler if it has been configured
272 call :warn Loading profiler script: %KARAF_PROFILER_SCRIPT%
273 call %KARAF_PROFILER_SCRIPT%
276 SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true
277 SET MAIN=org.apache.karaf.main.Main
281 if "%1" == "stop" goto :EXECUTE_STOP
282 if "%1" == "status" goto :EXECUTE_STATUS
283 if "%1" == "console" goto :EXECUTE_CONSOLE
284 if "%1" == "server" goto :EXECUTE_SERVER
285 if "%1" == "client" goto :EXECUTE_CLIENT
286 if "%1" == "clean" goto :EXECUTE_CLEAN
287 if "%1" == "debug" goto :EXECUTE_DEBUG
291 SET MAIN=org.apache.karaf.main.Stop
296 SET MAIN=org.apache.karaf.main.Status
305 SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
310 SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false
315 rmdir /S /Q "%KARAF_DATA%"
320 if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
321 set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
326 SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8
327 rem Execute the Java Virtual Machine
329 "%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%
331 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
337 if not "%PAUSE%" == "" pause