Difference between revisions of "Start Scripts"

From BaseX Documentation
Jump to navigation Jump to search
m (Text replacement - "syntaxhighlight" to "pre")
 
(74 intermediate revisions by 4 users not shown)
Line 1: Line 1:
The following scripts, which are mentioned on the [[Startup]] and [[Startup Options]] pages, are also included in our official '''Windows''' and '''ZIP''' release files, and available in our [https://github.com/BaseXdb/basex-dist/tree/master/bin GitHub repository]:
+
BaseX can be [[Startup|started in different ways]]. The [https://basex.org/download/ Windows and ZIP distributions] include various start scripts, which are presented in the following, and which can also be maintained separately.
  
* The Windows installer automatically adds the project’s <code>bin</code> directory to your path environment.
+
* We recommend you to manually add the {{Code|bin}} directory of your BaseX instance to the [https://en.wikipedia.org/wiki/PATH_(variable) PATH variable] of your environment.
* With the ZIP distribution, you need to manually modify the path to the <code>PATH</code> environment variable.
+
* If 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 should edit the scripts and assign the BaseX directory to the {{Code|MAIN}} variable.
 +
* If you are compiling the source code 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://github.com/BaseXdb/basex/tree/master/basex-api/etc basex-api/etc] subdirectories of the project.
  
==BaseX Main Package==
+
If BaseX 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=
  
===Windows: basex.bat===
+
Use the following scripts to launch the standalone version of BaseX:
  
<pre class="brush:bash">
+
==Windows: {{Code|basex.bat}}==
@setlocal
+
 
 +
<pre lang="batch">
 
@echo off
 
@echo off
 +
setLocal EnableDelayedExpansion
  
REM Path to this script
+
REM Path to core and library classes
set PWD=%~dp0
+
set MAIN=%~dp0/..
 
+
set CP=%MAIN%/BaseX.jar;%MAIN%/lib/*;%MAIN%/lib/custom/*
REM Paths to distributed files or source directories
 
set BXPATH=basex.jar
 
  
 
REM Options for virtual machine
 
REM Options for virtual machine
set VM=-Xmx512m
+
set BASEX_JVM=-Xmx1200m %BASEX_JVM%
  
REM Classpath
+
REM Run code
set LIB=%PWD%/../lib
+
java -cp "%CP%" %BASEX_JVM% org.basex.BaseX %*
set CP=%BASEX%;%LIB%/lucene-analyzers-3.0.2.jar;%LIB%/tagsoup-1.2.jar;%LIB%/snowball.jar
 
 
 
REM Run BaseX
 
java -cp "%CP%" %VM% org.basex.BaseX %*
 
 
</pre>
 
</pre>
  
===Linux/Mac: basex===
+
==Linux/Mac: {{Code|basex}}==
  
<pre class="brush:bash">
+
<pre lang="bash">
#!/bin/bash
+
#!/usr/bin/env bash
  
 
# Path to this script
 
# Path to this script
PWD=`dirname $0`
+
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 )"
  
# Paths to distributed files or source directories
+
# Core and library classes
BXPATH=basex.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"
  
# Classpath
+
# Run code
LIB=$PWD/../lib
+
java -cp "$CP" $BASEX_JVM org.basex.BaseX "$@"
CP=$BASEX:$LIB/lucene-analyzers-3.0.2.jar:$LIB/tagsoup-1.2.jar:$LIB/snowball.jar
+
</pre>
  
# Run BaseX
+
=GUI, Server, Client=
java -cp "$CP" $VM org.basex.XXX "$@"
 
</pre>
 
  
==BaseX JAX-RX Server==
+
If you would like to launch the GUI, Server or Client version of BaseX, please replace the class name in <code>org.basex.BaseX</code> with either <code>BaseXGUI</code>, <code>BaseXServer</code> or <code>BaseXClient</code>.
The scripts for starting the [[JAX-RX API|JAX-RX Server]] can be found below (deprecated from <font color='orangered'>Version 6.8</font>).
 
  
===Windows: basexjaxrx.bat===
+
=HTTP Server=
  
<pre class="brush:bash">
+
The scripts for running [[Web Application|Web Applications]] can be found below:
@setlocal
 
@echo off
 
  
REM Path to this script
+
==Windows: {{Code|basexhttp.bat}}==
set PWD=%~dp0
 
  
REM Paths to distributed files or source directories
+
<pre lang="batch">
set BASEX=%PWD%/basex-%BXVERSION%.jar
+
@echo off
set BASEXAPI=%PWD%/basex-api-%BXVERSION%.jar
+
setLocal EnableDelayedExpansion
  
REM Classpath
+
REM Path to core and library classes
set LIB=%PWD%/../lib
+
set MAIN=%~dp0/..
set CP=%BASEX%;%BASEXAPI%;%LIB%/jax-rx-1.2.9.jar;%LIB%/jetty-6.1.25.jar;%LIB%/jetty-util-6.1.25.jar
+
set CP=%MAIN%/BaseX.jar;%MAIN%/lib/*;%MAIN%/lib/custom/*
set CP=%CP%;%LIB%/servlet-api-2.5-20081211.jar;%LIB%/jersey-server-1.4.jar;%LIB%/jersey-core-1.4.jar;%LIB%/asm-3.1.jar
 
  
 
REM Options for virtual machine
 
REM Options for virtual machine
set VM=-Xmx512m
+
set BASEX_JVM=-Xmx1200m %BASEX_JVM%
  
 
REM Run code
 
REM Run code
java -cp "%CP%" %VM% org.basex.api.jaxrx.JaxRxServer %*
+
java -cp "%CP%" %BASEX_JVM% org.basex.BaseXHTTP %*
 
</pre>
 
</pre>
  
===Linux/Mac: basexjaxrx===
+
==Linux/Mac: {{Code|basexhttp}}==
  
<pre class="brush:bash">
+
<pre lang="bash">
#!/bin/bash
+
#!/usr/bin/env bash
  
 
# Path to this script
 
# Path to this script
PWD=`dirname $0`
+
FILE="${BASH_SOURCE[0]}"
 
+
while [ -h "$FILE" ] ; do
# Paths to distributed files or source directories
+
  SRC="$(readlink "$FILE")"
BASEX=$PWD/basex.jar
+
  FILE="$( cd -P "$(dirname "$FILE")" && \
BASEXAPI=$PWD/basex-api.jar
+
          cd -P "$(dirname "$SRC")" && pwd )/$(basename "$SRC")"
 +
done
 +
MAIN="$( cd -P "$(dirname "$FILE")/.." && pwd )"
  
# Classpath
+
# API, core, and library classes
LIB=$PWD/../lib
+
CP=$MAIN/BaseX.jar:$MAIN/lib/*:$MAIN/lib/custom/*:$CLASSPATH
CP=$BASEX:$BASEXAPI:$LIB/jax-rx-1.2.9.jar:$LIB/jetty-6.1.25.jar:$LIB/jetty-util-6.1.25.jar
 
CP=$CP:$LIB/servlet-api-2.5-20081211.jar:$LIB/jersey-server-1.4.jar:$LIB/jersey-core-1.4.jar:$LIB/asm-3.1.jar
 
  
# 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.api.jaxrx.JaxRxServer "$@"
+
java -cp "$CP" $BASEX_JVM org.basex.BaseXHTTP "$@"
 
</pre>
 
</pre>
  
==BaseX HTTP Server==
+
=Included Start Scripts=
The scripts for starting the HTTP server, which allows access to the [[REST]] and [[WebDAV]] services, can be found below (introduced with <font color='orangered'>Version 6.8</font>).
 
 
 
===Windows: basexhttp.bat===
 
 
 
<pre class="brush:bash">
 
@echo off
 
setlocal
 
 
 
REM Path to this script
 
set PWD=%~dp0
 
 
 
REM Paths to distributed files or source directories
 
set BASEX=%PWD%/../../basex/target/classes
 
set BASEXAPI=%PWD%/../target/classes
 
 
 
REM Classpath
 
set LIB=%PWD%/../lib
 
set CP=%BASEX%;%BASEXAPI%;%LIB%/commons-fileupload-1.2.2.jar;%LIB%/jetty-6.1.26.jar
 
set CP=%CP%;%LIB%/jetty-util-6.1.26.jar;%LIB%/lucene-analyzers-3.0.2.jar;%LIB%/milton-api-1.6.4.jar
 
set CP=%CP%;%LIB%/resolver.jar;%LIB%/servlet-api-2.5-20081211.jar;%LIB%/snowball.jar;%LIB%/tagsoup-1.2.jar
 
 
 
REM Options for virtual machine
 
set VM=-Xmx512m
 
 
 
REM Run code
 
java -cp "%CP%;." %VM% org.basex.api.BaseXHTTP %*
 
</pre>
 
  
===Linux/Mac: basexhttp===
+
The BaseX [https://basex.org/download/ Windows and ZIP distributions] include the following start scripts:
  
<pre class="brush:bash">
+
{| class="wikitable"
#!/bin/bash
+
|- 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.
 +
|}
  
# Path to this script
+
For the BaseX HTTP and database server, additional stop scripts are available:
PWD=`dirname $0`
 
  
# Paths to distributed files or source directories
+
{| class="wikitable"
BASEX=$PWD/../../basex/target/classes
+
|- valign="top"
BASEXAPI=$PWD/../target/classes
+
! 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.
 +
|}
  
# Classpath
+
=Changelog=
LIB=$PWD/../lib
 
CP=$BASEX:$BASEXAPI:$LIB/commons-fileupload-1.2.2.jar:$LIB/jetty-6.1.26.jar
 
CP=$CP:$LIB/jetty-util-6.1.26.jar:$LIB/lucene-analyzers-3.0.2.jar:$LIB/milton-api-1.6.4.jar
 
CP=$CP:$LIB/resolver.jar:$LIB/servlet-api-2.5-20081211.jar:$LIB/snowball.jar:$LIB/tagsoup-1.2.jar
 
  
# Options for virtual machine
+
;Version 7.5
VM=-Xmx512m
+
* Updated: Static dependencies removed from Windows batch scripts.
  
# Run code
+
;Version 7.2
java -cp "$CP" $VM org.basex.api.BaseXHTTP "$@"
+
* Updated: The {{Code|BaseXHTTP}} start class moved from {{Code|org.basex.api}} to {{Code|org.basex}}.
</pre>
 
  
[[Category:JAX-RX]]
+
;Version 7.0
[[Category:REST]]
+
* Updated: The {{Code|basexjaxrx}} scripts have been replaced with the {{Code|basexhttp}} scripts.
[[Category:Beginner]]
 
[[Category:Developer]]
 

Latest revision as of 18:39, 1 December 2023

BaseX can be started in different ways. The Windows and ZIP distributions include various start scripts, which are presented in the following, and which can also be maintained separately.

  • We recommend you to manually add the bin directory of your BaseX instance to the PATH variable of your environment.
  • If 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 should edit the scripts and assign the BaseX directory to the MAIN variable.
  • If you are compiling the source code with Maven, you can launch BaseX via the scripts in the basex-core/etc and basex-api/etc subdirectories of the project.

If BaseX terminates with an Out of Memory or Java heap space error, you can assign more RAM via the -Xmx flag (see below). A conservative value was chosen in our distributions to ensure that BaseX will also run on older JVMs.

Standalone[edit]

Use the following scripts to launch the standalone version of BaseX:

Windows: basex.bat[edit]

@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[edit]

#!/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 "$@"

GUI, Server, Client[edit]

If you would like to launch the GUI, Server or Client version of BaseX, please replace the class name in org.basex.BaseX with either BaseXGUI, BaseXServer or BaseXClient.

HTTP Server[edit]

The scripts for running Web Applications can be found below:

Windows: basexhttp.bat[edit]

@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[edit]

#!/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 "$@"

Included Start Scripts[edit]

The BaseX Windows and ZIP distributions include the following start scripts:

Windows Linux/Mac Description
basex.bat basex Launches the BaseX standalone mode.
basexclient.bat basexclient Starts a BaseX client.
basexgui.bat basexgui Starts the BaseX GUI.
basexhttp.bat basexhttp Starts the BaseX HTTP Server.
basexserver.bat basexserver Starts the BaseX database server.

For the BaseX HTTP and database server, additional stop scripts are available:

Windows Linux/Mac Description
basexhttpstop.bat basexhttpstop Stops the BaseX HTTP Server.
basexserverstop.bat basexserverstop Stops the BaseX database server.

Changelog[edit]

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.