@echo off rem Licensed to the Apache Software Foundation (ASF) under one or more rem contributor license agreements. See the NOTICE file distributed with rem this work for additional information regarding copyright ownership. rem The ASF licenses this file to You under the Apache License, Version 2.0 rem (the "License"); you may not use this file except in compliance with rem the License. You may obtain a copy of the License at rem rem http://www.apache.org/licenses/LICENSE-2.0 rem rem Unless required by applicable law or agreed to in writing, software rem distributed under the License is distributed on an "AS IS" BASIS, rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. rem See the License for the specific language governing permissions and rem limitations under the License. setlocal enabledelayedexpansion IF [%1] EQU [] ( echo USAGE: %0 classname [opts] EXIT /B 1 ) rem Using pushd popd to set BASE_DIR to the absolute path pushd %~dp0..\.. set BASE_DIR=%CD% popd IF ["%SCALA_VERSION%"] EQU [""] ( set SCALA_VERSION=2.10.6 ) IF ["%SCALA_BINARY_VERSION%"] EQU [""] ( set SCALA_BINARY_VERSION=2.10 ) rem Classpath addition for kafka-core dependencies for %%i in (%BASE_DIR%\core\build\dependant-libs-%SCALA_VERSION%\*.jar) do ( call :concat %%i ) rem Classpath addition for kafka-perf dependencies for %%i in (%BASE_DIR%\perf\build\dependant-libs-%SCALA_VERSION%\*.jar) do ( call :concat %%i ) rem Classpath addition for kafka-clients for %%i in (%BASE_DIR%\clients\build\libs\kafka-clients-*.jar) do ( call :concat %%i ) rem Classpath addition for kafka-examples for %%i in (%BASE_DIR%\examples\build\libs\kafka-examples-*.jar) do ( call :concat %%i ) rem Classpath addition for release call :concat %BASE_DIR%\libs\* rem Classpath addition for core for %%i in (%BASE_DIR%\core\build\libs\kafka_%SCALA_BINARY_VERSION%*.jar) do ( call :concat %%i ) rem JMX settings IF ["%KAFKA_JMX_OPTS%"] EQU [""] ( set KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false ) rem JMX port to use IF ["%JMX_PORT%"] NEQ [""] ( set KAFKA_JMX_OPTS=%KAFKA_JMX_OPTS% -Dcom.sun.management.jmxremote.port=%JMX_PORT% ) rem Log directory to use IF ["%LOG_DIR%"] EQU [""] ( set LOG_DIR=%BASE_DIR%/logs ) rem Log4j settings IF ["%KAFKA_LOG4J_OPTS%"] EQU [""] ( set KAFKA_LOG4J_OPTS=-Dlog4j.configuration=file:%BASE_DIR%/config/tools-log4j.properties ) ELSE ( # create logs directory IF not exist %LOG_DIR% ( mkdir %LOG_DIR% ) ) set KAFKA_LOG4J_OPTS=-Dkafka.logs.dir=%LOG_DIR% %KAFKA_LOG4J_OPTS% rem Generic jvm settings you want to add IF ["%KAFKA_OPTS%"] EQU [""] ( set KAFKA_OPTS= ) rem Which java to use IF ["%JAVA_HOME%"] EQU [""] ( set JAVA=java ) ELSE ( set JAVA="%JAVA_HOME%/bin/java" ) rem Memory options IF ["%KAFKA_HEAP_OPTS%"] EQU [""] ( set KAFKA_HEAP_OPTS=-Xmx256M ) rem JVM performance options IF ["%KAFKA_JVM_PERFORMANCE_OPTS%"] EQU [""] ( set KAFKA_JVM_PERFORMANCE_OPTS=-server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+DisableExplicitGC -Djava.awt.headless=true ) IF ["%CLASSPATH%"] EQU [""] ( echo Classpath is empty. Please build the project first e.g. by running 'gradlew jarAll' EXIT /B 2 ) set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp %CLASSPATH% %KAFKA_OPTS% %* rem echo. rem echo %COMMAND% rem echo. %COMMAND% goto :eof :concat IF ["%CLASSPATH%"] EQU [""] ( set CLASSPATH="%1" ) ELSE ( set CLASSPATH=%CLASSPATH%;"%1" )