blob: c8e8797503d01bc9c7df435761b9c32668a964f6 [file] [log] [blame]
@echo off
REM
REM Copyright (c) 1997, 2021 Oracle and/or its affiliates. All rights reserved.
REM
REM This program and the accompanying materials are made available under the
REM terms of the Eclipse Distribution License v. 1.0, which is available at
REM http://www.eclipse.org/org/documents/edl-v10.php.
REM
REM SPDX-License-Identifier: BSD-3-Clause
REM
rem
rem Make sure that JAXB_HOME and JAVA_HOME are set
rem
if not "%JAXB_HOME%" == "" goto CHECKJAVAHOME
rem Try to locate JAXB_HOME
set JAXB_HOME=%~dp0
set JAXB_HOME=%JAXB_HOME%\..
if exist "%JAXB_HOME%\mod\jaxb-xjc.jar" goto CHECKJAVAHOME
rem Unable to find it
echo JAXB_HOME must be set before running this script
goto END
:CHECKJAVAHOME
if not "%JAVA_HOME%" == "" goto USE_JAVA_HOME
set JAVA=java
goto LAUNCHXJC
:USE_JAVA_HOME
set JAVA="%JAVA_HOME%\bin\java"
goto LAUNCHXJC
:LAUNCHXJC
rem JXC module path
set JAXB_PATH=%JAXB_HOME%/mod/jaxb-xjc.jar;%JAXB_HOME%/mod/jakarta.xml.bind-api.jar;%JAXB_HOME%/mod/jaxb-core.jar;%JAXB_HOME%/mod/jaxb-impl.jar;%JAXB_HOME%/mod/jakarta.activation.jar
rem store and reset JAVA_TOOL_OPTIONS to avoid additional output from `java --version`
IF DEFINED JAVA_TOOL_OPTIONS (
SET _OPTS=%JAVA_TOOL_OPTIONS%
SET JAVA_TOOL_OPTIONS=
)
rem Set Java Version
for /f "tokens=3" %%i in ('java -version 2^>^&1 ^| %SystemRoot%\system32\find.exe "version"') do (
set JAVA_VERSION1=%%i
)
for /f "tokens=1,2 delims=." %%j in ('echo %JAVA_VERSION1:~1,-1%') do (
if "1" EQU "%%j" (
set JAVA_VERSION2=%%k
) else (
set JAVA_VERSION2=%%j
)
)
rem Remove -ea
for /f "delims=-" %%i in ('echo %JAVA_VERSION2%') do set JAVA_VERSION=%%i
echo Java major version: %JAVA_VERSION%
if DEFINED _OPTS (
SET JAVA_TOOL_OPTIONS=%_OPTS%
)
if %JAVA_VERSION% GEQ 9 goto JDK11_OR_GREATER
%JAVA% -cp %JAXB_PATH% %XJC_OPTS% com.sun.tools.xjc.XJCFacade %*
GOTO END
:JDK11_OR_GREATER
rem module path
%JAVA% --module-path %JAXB_PATH% --add-modules com.sun.xml.bind %XJC_OPTS% -m com.sun.tools.xjc %*
GOTO END
:END
%COMSPEC% /C exit %ERRORLEVEL%