@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.11.12 ) IF ["%SCALA_BINARY_VERSION%"] EQU [""] ( for /f "tokens=1,2 delims=." %%a in ("%SCALA_VERSION%") do ( set FIRST=%%a set SECOND=%%b if ["!SECOND!"] EQU [""] ( set SCALA_BINARY_VERSION=!FIRST! ) else ( set SCALA_BINARY_VERSION=!FIRST!.!SECOND! ) ) ) 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-examples for %%i in ("%BASE_DIR%\examples\build\libs\kafka-examples*.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-streams for %%i in ("%BASE_DIR%\streams\build\libs\kafka-streams*.jar") do ( call :concat "%%i" ) rem Classpath addition for kafka-streams-examples for %%i in ("%BASE_DIR%\streams\examples\build\libs\kafka-streams-examples*.jar") do ( call :concat "%%i" ) for %%i in ("%BASE_DIR%\streams\build\dependant-libs-%SCALA_VERSION%\rocksdb*.jar") do ( call :concat "%%i" ) rem Classpath addition for kafka tools for %%i in ("%BASE_DIR%\tools\build\libs\kafka-tools*.jar") do ( call :concat "%%i" ) for %%i in ("%BASE_DIR%\tools\build\dependant-libs-%SCALA_VERSION%\*.jar") do ( call :concat "%%i" ) for %%p in (api runtime file json tools) do ( for %%i in ("%BASE_DIR%\connect\%%p\build\libs\connect-%%p*.jar") do ( call :concat "%%i" ) if exist "%BASE_DIR%\connect\%%p\build\dependant-libs\*" ( call :concat "%BASE_DIR%\connect\%%p\build\dependant-libs\*" ) ) rem Classpath addition for release for %%i in ("%BASE_DIR%\libs\*") do ( call :concat "%%i" ) 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 ( rem 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= ) set DEFAULT_JAVA_DEBUG_PORT=5005 set DEFAULT_DEBUG_SUSPEND_FLAG=n rem Set Debug options if enabled IF ["%KAFKA_DEBUG%"] NEQ [""] ( IF ["%JAVA_DEBUG_PORT%"] EQU [""] ( set JAVA_DEBUG_PORT=%DEFAULT_JAVA_DEBUG_PORT% ) IF ["%DEBUG_SUSPEND_FLAG%"] EQU [""] ( set DEBUG_SUSPEND_FLAG=%DEFAULT_DEBUG_SUSPEND_FLAG% ) set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=!DEBUG_SUSPEND_FLAG!,address=!JAVA_DEBUG_PORT! IF ["%JAVA_DEBUG_OPTS%"] EQU [""] ( set JAVA_DEBUG_OPTS=!DEFAULT_JAVA_DEBUG_OPTS! ) echo Enabling Java debug options: !JAVA_DEBUG_OPTS! set KAFKA_OPTS=!JAVA_DEBUG_OPTS! !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:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true ) IF not defined CLASSPATH ( 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 not defined CLASSPATH ( set CLASSPATH="%~1" ) ELSE ( set CLASSPATH=%CLASSPATH%;"%~1" )