[Gradle] gradlew.bat

HwangBaco·2023년 5월 2일
0

프로그램마다 만약 gradle과 같은 빌드 툴의 버전이 다르다면 매우 번거로울 것입니다. 따라서 Gradle에서는 각 프로젝트마다 내장 Gradle을 넣어두고 사용할 수 있게 하였습니다. 이렇게 함으로써, 프로젝트(프로그램)을 전환할 때 마다 Gradle 버전을 바꿔줄 필요가 없게 됩니다.

내장 그레이들을 gradle wrapper라고 하며, gradle init시 생성되는 gradle/wrapper 디렉토리에 내장 그레이들(.jar)과 환경 설정 파일(.properties)가 같이 저장됩니다.

하지만 이를 직접 사용하려면 상당히 복잡한 과정을 거쳐야 할 것이므로, 이를 편하게 사용하게 만들기 위해 스크립트를 저장해둔 파일이 있습니다. 바로, gradlew.bat으로, 이는 윈도우 환경에서 내장 그레이들 사용을 간단하게 만들기 위해 스크립트를 저장해 둔 파일입니다. Unix 계열의 운영체제(macOS, Linux)에서는 gradlew에 스크립트가 저장되어 있습니다.

보통 .bat확장자는 윈도우 환경에서 정해진 스크립트를 실행시키기 위해 많이 사용되며, .sh 등의 확장자 등 Unix 계열의 운영체제(macOS, Linux)를 위한 스크립트 파일이 존재합니다.

아래는 gradlew.bat의 스크립트 중 java.exe를 찾는 부분을 발췌해 가져왔습니다. Gradle Wrapper를 사용하여 프로젝트를 빌드하려면 터미널 또는 명령 프롬프트에서 gradlew 명령(Windows에서는 gradlew.bat)을 실행합니다.

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto execute

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

위 스크립트의 동작 과정은 다음과 같습니다.

  1. 사용자가 Windows 환경에서 gradlew.bat을 실행합니다.
  2. 스크립트는 시스템에 올바르게 설치된 Java를 찾기 위해 JAVA_HOME 환경 변수를 확인합니다.
  3. JAVA_HOME이 설정되어 있지 않은 경우, 스크립트는 시스템의 PATH에서 java.exe를 찾아봅니다.
  4. JAVA_HOME이 설정되어 있으면, 스크립트는 JAVA_HOME 디렉토리 내의 bin 폴더에서 java.exe를 찾습니다.

이를 통해 시스템에 자바가 설치되어 있는지, 환경 변수 설정 여부와 자바 실행 파일을 찾게 됩니다.

참고 : 코틀린월드

profile
알고리즘 풀이 아카이브

0개의 댓글