Difference between revisions of "Start Scripts"

From BaseX Documentation
Jump to navigation Jump to search
Line 77: Line 77:
  
 
<pre class="brush:bash">
 
<pre class="brush:bash">
#!/bin/bash
+
#!/usr/bin/env bash
  
 
# Path to this script
 
# Path to this script
Line 86: Line 86:
 
           cd -P "$(dirname "$SRC")" && pwd )/$(basename "$SRC")"
 
           cd -P "$(dirname "$SRC")" && pwd )/$(basename "$SRC")"
 
done
 
done
BX="$( cd -P "$(dirname "$FILE")/.." && pwd )"
+
MAIN="$( cd -P "$(dirname "$FILE")/.." && pwd )"
BXCORE="$( cd -P "$BX/../basex" && pwd )"
 
  
 
# API, core, and library classes
 
# API, core, and library classes
CP="$BX/BaseX.jar$(printf ":%s" "$BX/BaseX.jar" "$BX/lib/"*.jar "$BXCORE/target/classes" "$BXCORE/lib/"*.jar)"
+
CP=$MAIN/BaseX.jar:$MAIN/lib/*:$MAIN/lib/custom/*:$CLASSPATH
  
# Options for virtual machine
+
# Options for virtual machine (can be extended by global options)
VM=-Xmx512m
+
BASEX_JVM="-Xmx2g $BASEX_JVM"
  
 
# Run code
 
# Run code
java -cp "$CP" $VM org.basex.BaseXHTTP "$@"
+
java -cp "$CP" $BASEX_JVM org.basex.BaseXHTTP "$@"
 
</pre>
 
</pre>
  

Revision as of 09:13, 18 October 2017

The following scripts, which are referenced in the Startup and Command-Line Options articles, are also included in the Windows and ZIP distributions.

  • We recommend you to manually add the bin directory of your BaseX directory to the PATH variable of your environment.
  • You can copy the start scripts to another location in your file system. After that, you should edit the scripts and assign the BaseX directory to the MAIN variable.
  • The Windows installer automatically adds the project’s bin directory to your path environment.
  • If you work with Maven, you can directly run the scripts in the basex-core/etc and basex-api/etc sub-directories of the project.

If BaseX terminates with an Out of Memory error, you can assign more RAM via the -Xmx flag (see below). The chosen value ensures that BaseX will also run on 32 bit JVMs.

Main Package

The following scripts can be used to launch the standalone version of BaseX. Please replace the class name in org.basex.BaseX with either BaseXClient, BaseXServer, or BaseXGUI to run the client, server or GUI version.

Windows: basex.bat

@echo off
setLocal EnableDelayedExpansion

REM Path to core and library classes
set MAIN=%~dp0/..
set CP=%MAIN%/BaseX.jar;%MAIN%/lib/*;%MAIN%/lib/custom/*

REM Options for virtual machine
set BASEX_JVM=-Xmx1200m %BASEX_JVM%

REM Run code
java -cp "%CP%" %BASEX_JVM% org.basex.BaseX %*

Linux/Mac: basex

#!/usr/bin/env bash

# Path to this script
FILE="${BASH_SOURCE[0]}"
while [ -h "$FILE" ] ; do
  SRC="$(readlink "$FILE")"
  FILE="$( cd -P "$(dirname "$FILE")" && \
           cd -P "$(dirname "$SRC")" && pwd )/$(basename "$SRC")"
done
MAIN="$( cd -P "$(dirname "$FILE")/.." && pwd )"

# Core and library classes
CP=$MAIN/BaseX.jar:$MAIN/lib/*:$MAIN/lib/custom/*:$CLASSPATH

# Options for virtual machine (can be extended by global options)
BASEX_JVM="-Xmx2g $BASEX_JVM"

# Run code
java -cp "$CP" $BASEX_JVM org.basex.BaseX "$@"

HTTP Server

The scripts for starting the HTTP server, which gives access to the REST, RESTXQ and WebDAV services, can be found below.

Windows: basexhttp.bat

@echo off
setLocal EnableDelayedExpansion

REM Path to core and library classes
set MAIN=%~dp0/..
set CP=%MAIN%/BaseX.jar;%MAIN%/lib/*;%MAIN%/lib/custom/*

REM Options for virtual machine
set BASEX_JVM=-Xmx1200m %BASEX_JVM%

REM Run code
java -cp "%CP%" %BASEX_JVM% org.basex.BaseXHTTP %*

Linux/Mac: basexhttp

#!/usr/bin/env bash

# Path to this script
FILE="${BASH_SOURCE[0]}"
while [ -h "$FILE" ] ; do
  SRC="$(readlink "$FILE")"
  FILE="$( cd -P "$(dirname "$FILE")" && \
           cd -P "$(dirname "$SRC")" && pwd )/$(basename "$SRC")"
done
MAIN="$( cd -P "$(dirname "$FILE")/.." && pwd )"

# API, core, and library classes
CP=$MAIN/BaseX.jar:$MAIN/lib/*:$MAIN/lib/custom/*:$CLASSPATH

# Options for virtual machine (can be extended by global options)
BASEX_JVM="-Xmx2g $BASEX_JVM"

# Run code
java -cp "$CP" $BASEX_JVM org.basex.BaseXHTTP "$@"

Changelog

Version 7.5
  • Updated: Static dependencies removed from Windows batch scripts.
Version 7.2
  • Updated: The BaseXHTTP start class moved from org.basex.api to org.basex.
Version 7.0
  • Updated: The basexjaxrx scripts have been replaced with the basexhttp scripts.