The following scripts, which are mentioned on the BaseX can be [[Startup|started in different ways]] and [[Startup Options]] pages, are also included in our official '''Windows''' and '''ZIP''' release files, and available in our . The [https://githubbasex.comorg/BaseXdbdownload/basex/tree/master/etc GitHub repositoryWindows and ZIP distributions]:include various start scripts, which are presented in the following, and which can also be maintained separately.
* The installers automatically We recommend you to manually add the project’s {{Code|bin}} directory of your BaseX instance to the [https://en.wikipedia.org/wiki/PATH_(variable) PATH variable] of your path environment.* OtherwiseIf you use the Windows installer, that’s done automatically.* You can copy the start scripts to another location in your file system. After that, you can manually add should edit the scripts and assign the BaseX directory to the {{Code|binMAIN}} directory to your <variable.* If you are compiling the source code>PATH<with [[Maven]], you can launch BaseX via the scripts in the [https://github.com/BaseXdb/basex/tree/master/basex-core/etc basex-core/etc] and [https://code> environment variablegithub.<brcom/BaseXdb/basex/tree/master/basex-api/><bretc basex-api/>etc] subdirectories of the project.
=If BaseX Main Package=terminates with an {{Code|Out of Memory}} or {{Code|Java heap space}} error, you can assign more RAM via the {{Code|-Xmx}} flag (see below). A conservative value was chosen in our distributions to ensure that BaseX will also run on older JVMs.
The following scripts launch the standalone version of BaseX. Please replace the class name in <code>org.basex.BaseX</code> with either <code>BaseXClient</code>, <code>BaseXServer</code>, or <code>BaseXGUI</code> to run the client, server or GUI version.=Standalone=
==WindowsUse the following scripts to launch the standalone version of BaseX: basex.bat==
==Windows: {{Code|basex.bat}}== <pre classlang="brush:bashbatch">@setlocal
@echo off
setLocal EnableDelayedExpansion
REM Path to this scriptcore and library classesset PWDMAIN=%~dp0 REM Paths to distributed JAR archives or class files/..set BASEXCP=basex%MAIN%/BaseX.jar;%MAIN%/lib/*;%MAIN%/lib/custom/*
REM Options for virtual machine
set VMBASEX_JVM=-Xmx512mXmx1200m %BASEX_JVM%
REM Classpathset LIB=%PWD%/../libset CP=%BASEX%;%LIB%/lucene-analyzers-3.0.2.jar;%LIB%/tagsoup-1.2.jar;%LIB%/snowball.jar REM Run BaseXcodejava -cp "%CP%" %VMBASEX_JVM% org.basex.BaseX %*
</pre>
==Linux/Mac: {{Code|basex}}==
<pre classlang="brush:bash">#!/usr/bin/env bash
# Path to this script
cd -P "$(dirname "$SRC")" && pwd )/$(basename "$SRC")"
done
BXMAIN="$( cd -P "$(dirname "$FILE")/.." && pwd )"
# Core and library classes
CP="$BXMAIN/BaseX.jar"CP=":$CPMAIN/lib/*:$(for JAR in "$BX"MAIN/lib/custom/*.jar; do echo -n ":$JAR"; done)" # Options for virtual machineVM=-Xmx512mCLASSPATH
general_args=( )vm_args=( )while (# Options for virtual machine ( $# )can be extended by global options) ; do if [[ $1 BASEX_JVM= "-X" ]] ; then vm_args+=( "$2" ) shift 2 else general_args+=( "Xmx2g $1BASEX_JVM" ) shift fidone
# Run code
java -cp "$CP" $VM "${vm_args[@]}" BASEX_JVM org.basex.BaseX "${general_args[@]}"
</pre>
=BaseX HTTP GUI, Server, Client=
The scripts for starting If you would like to launch the HTTP serverGUI, Server or Client version of BaseX, which gives access to please replace the [[REST]], [[RESTXQ]] and [[WebDAV]] servicesclass name in <code>org.basex.BaseX</code> with either <code>BaseXGUI</code>, can be found below<code>BaseXServer</code> or <code>BaseXClient</code>.
Note: In {{Mark|Version 7.2}}, the {{Code|BaseXHTTP}} start class will be moved from the {{Code|org.basex.api}} package to {{Code|org.basex}}.=HTTP Server=
==WindowsThe scripts for running [[Web Application|Web Applications]] can be found below: basexhttp.bat==
==Windows: {{Code|basexhttp.bat}}== <pre classlang="brush:bashbatch">
@echo off
setlocalsetLocal EnableDelayedExpansion
REM Path to this scriptcore and library classesset PWDMAIN=%~dp0 REM Paths to distributed JAR archives or class filesset BASEX=%PWD%/basex.jar set BASEXAPI=%PWD%/basex-api.jar REM Classpathset LIB=%PWD%/../libset CP=%BASEX%;%BASEXAPI%;%LIBMAIN%/commons-beanutils-1.8.2BaseX.jar;%LIBMAIN%/commons-codec-1.4.jar;%LIB%lib/commons-fileupload-1.2.2.jar*;%LIBMAIN%/commons-io-1.4.jar;%LIB%/commons-logging-1.1.1.jar;%LIB%/jdom-1.1.jar;%LIB%lib/jetty-6.1.26.jar;%LIB%/jetty-util-6.1.26.jar;%LIB%custom/log4j-1.2.14.jar;%LIB%/lucene-analyzers-3.0.2.jar;%LIB%/milton-api-1.6.4.jar;%LIB%/mime-util-2.1.3.jar;%LIB%/resolver.jar;%LIB%/servlet-api-2.5-20081211.jar;%LIB%/slf4j-api-1.5.8.jar;%LIB%/slf4j-log4j12-1.5.6.jar;%LIB%/snowball.jar;%LIB%/tagsoup-1.2.jar;%LIB%/xmldb-api-1.0.jar;%LIB%/xqj-api-1.0.jar*
REM Options for virtual machine
set VMBASEX_JVM=-Xmx512mXmx1200m %BASEX_JVM%
REM Run code
java -cp "%CP%;." %VMBASEX_JVM% org.basex.api.BaseXHTTP %*
</pre>
==Linux/Mac: {{Code|basexhttp}}==
<pre classlang="brush:bash">#!/usr/bin/env bash
# Path to this script
cd -P "$(dirname "$SRC")" && pwd )/$(basename "$SRC")"
done
BXMAIN="$( cd -P "$(dirname "$FILE")/.." && pwd )"
# API, core, and library classes
CP="$BXMAIN/BaseX.jar$(printf ":%s" "$BXMAIN/lib/BaseX.jar" "*:$BXMAIN/lib/"custom/*.jar)":$CLASSPATH
# Options for virtual machineVM=-Xmx512m general_args=( )vm_args=( can be extended by global options)while (( $# )) ; do if [[ $1 BASEX_JVM= "-X" ]] ; then vm_args+=( "Xmx2g $2BASEX_JVM" ) shift 2 else general_args+=( "$1" ) shift fidone
# Run code
java -cp "$CP" $VM "${vm_args[@]}" BASEX_JVM org.basex.BaseXHTTP "${general_args[@]}"
</pre>
=Included Start Scripts=
The BaseX [https://basex.org/download/ Windows and ZIP distributions] include the following start scripts:
{| class="wikitable"
|- valign="top"
! Windows
! Linux/Mac
! Description
|- valign="top"
| {{Code|basex.bat}}
| {{Code|basex}}
| Launches the BaseX standalone mode.
|- valign="top"
| {{Code|basexclient.bat}}
| {{Code|basexclient}}
| Starts a BaseX client.
|- valign="top"
| {{Code|basexgui.bat}}
| {{Code|basexgui}}
| Starts the BaseX GUI.
|- valign="top"
| {{Code|basexhttp.bat}}
| {{Code|basexhttp}}
| Starts the BaseX HTTP Server.
|- valign="top"
| {{Code|basexserver.bat}}
| {{Code|basexserver}}
| Starts the BaseX database server.
|}
For the BaseX HTTP and database server, additional stop scripts are available:
{| class="wikitable"
|- valign="top"
! Windows
! Linux/Mac
! width="40%" | Description
|- valign="top"
|- valign="top"
| {{Code|basexhttpstop.bat}}
| {{Code|basexhttpstop}}
| Stops the BaseX HTTP Server.
|- valign="top"
| {{Code|basexserverstop.bat}}
| {{Code|basexserverstop}}
| Stops the BaseX database server.
|}
=Changelog=
;Version 7.5
* Updated: Static dependencies removed from Windows batch scripts.
;Version 7.2
* Updated: The {{Code|BaseXHTTP}} start class will be moved from {{Code|org.basex.api}} to {{Code|org.basex}}.
;Version 7.0
* Updated: The {{Code|basexjaxrx}} scripts have been replaced with the {{Code|basexhttp}} scripts.