Difference between revisions of "Start Scripts"

From BaseX Documentation
Jump to navigation Jump to search
m (Text replacement - "[http://en.wikipedia.org/" to "[https://en.wikipedia.org/")
Tags: Mobile web edit Mobile edit
(54 intermediate revisions by 2 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]:
+
Each BaseX  [[Startup]] mode can be launched with its own Start Script which can in turn be used with its own range of [[Command-Line Options]]. The BaseX [https://basex.org/download/ Windows and ZIP distributions] readily include all Start Scripts.
  
* 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 directory 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.
+
* 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.
 +
* The Windows installer automatically adds the project’s {{Code|bin}} directory to your path environment.
 +
* If you work with [[Maven]], you can directly run 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] sub-directories 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). The conservative value that was chosen in our distributions ensures that BaseX will also run on 32 bit 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===
+
The following scripts launch the standalone version of BaseX:
  
<pre class="brush:bash">
+
==Windows: {{Code|basex.bat}}==
@setlocal
+
 
 +
<syntaxhighlight 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 JAR archives or class files
 
set BASEX=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
+
</syntaxhighlight>
  
REM Run BaseX
+
==Linux/Mac: {{Code|basex}}==
java -cp "%CP%" %VM% org.basex.BaseX %*
 
</pre>
 
  
===Linux/Mac: basex===
+
<syntaxhighlight lang="bash">
 
+
#!/usr/bin/env bash
<pre class="brush:bash">
 
#!/bin/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 JAR archives or class files
+
# Core and library classes
BASEX=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
+
</syntaxhighlight>
  
# Run BaseX
+
=GUI, Server, Client=
java -cp "$CP" $VM org.basex.XXX "$@"
 
</pre>
 
  
==BaseX HTTP 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>.
{{Mark|Introduced with Version 7.0}}:<br/>The scripts for starting the HTTP server, which gives access to the [[REST]] and [[WebDAV]] services, can be found below.
 
  
===Windows: basexhttp.bat===
+
=HTTP Server=
  
<pre class="brush:bash">
+
The scripts for starting the HTTP server, which gives access to the [[REST]], [[RESTXQ]] and [[WebDAV]] services, can be found below:
@echo off
 
setlocal
 
  
REM Path to this script
+
==Windows: {{Code|basexhttp.bat}}==
set PWD=%~dp0
 
  
REM Paths to distributed JAR archives or class files
+
<syntaxhighlight lang="batch">
set BASEX=%PWD%/basex.jar
+
@echo off
set BASEXAPI=%PWD%/basex-api.jar
+
setLocal EnableDelayedExpansion
  
REM Classpath
+
REM Path to core and library classes
set LIB=%PWD%/../lib
+
set MAIN=%~dp0/..
set CP=%BASEX%;%BASEXAPI%;%LIB%/commons-beanutils-1.8.2.jar;%LIB%/commons-codec-1.4.jar;%LIB%/commons-fileupload-1.2.2.jar;%LIB%/commons-io-1.4.jar;%LIB%/commons-logging-1.1.1.jar;%LIB%/jdom-1.1.jar;%LIB%/jetty-6.1.26.jar;%LIB%/jetty-util-6.1.26.jar;%LIB%/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
+
set CP=%MAIN%/BaseX.jar;%MAIN%/lib/*;%MAIN%/lib/custom/*
  
 
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.BaseXHTTP %*
+
java -cp "%CP%" %BASEX_JVM% org.basex.BaseXHTTP %*
</pre>
+
</syntaxhighlight>
  
===Linux/Mac: basexhttp===
+
==Linux/Mac: {{Code|basexhttp}}==
  
<pre class="brush:bash">
+
<syntaxhighlight 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 )"
 +
 
 +
# 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 "$@"
 +
</syntaxhighlight>
 +
 
 +
=Included Start Scripts=
 +
 
 +
The BaseX [https://basex.org/download/ Windows and ZIP distributions] readily 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, there are also stop scripts 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.
 +
|}
  
# Paths to distributed JAR archives or class files
+
=Changelog=
BASEX=$PWD/basex.jar
 
BASEXAPI=$PWD/basex-api.jar
 
  
# Classpath
+
;Version 7.5
LIB=$PWD/../lib
 
CP=$BASEX:$BASEXAPI:$LIB/commons-fileupload-1.2.2.jar:$LIB/commons-beanutils-1.8.2.jar:$LIB/commons-codec-1.4.jar:$LIB/commons-fileupload-1.2.2.jar:$LIB/commons-io-1.4.jar:$LIB/commons-logging-1.1.1.jar:$LIB/jdom-1.1.jar:$LIB/jetty-6.1.26.jar:$LIB/jetty-util-6.1.26.jar:$LIB/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
 
  
# Options for virtual machine
+
* Updated: Static dependencies removed from Windows batch scripts.
VM=-Xmx512m
 
  
# Run code
+
;Version 7.2
java -cp "$CP" $VM org.basex.api.BaseXHTTP "$@"
+
 
</pre>
+
* Updated: The {{Code|BaseXHTTP}} start class 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.

Revision as of 11:56, 2 July 2020

Each BaseX Startup mode can be launched with its own Start Script which can in turn be used with its own range of Command-Line Options. The BaseX Windows and ZIP distributions readily include all Start Scripts.

  • 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 or Java heap space error, you can assign more RAM via the -Xmx flag (see below). The conservative value that was chosen in our distributions ensures that BaseX will also run on 32 bit JVMs.

Standalone

The following scripts launch the standalone version of BaseX:

Windows: basex.bat

<syntaxhighlight lang="batch"> @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 %* </syntaxhighlight>

Linux/Mac: basex

<syntaxhighlight lang="bash">

  1. !/usr/bin/env bash
  1. 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 )"

  1. Core and library classes

CP=$MAIN/BaseX.jar:$MAIN/lib/*:$MAIN/lib/custom/*:$CLASSPATH

  1. Options for virtual machine (can be extended by global options)

BASEX_JVM="-Xmx2g $BASEX_JVM"

  1. Run code

java -cp "$CP" $BASEX_JVM org.basex.BaseX "$@" </syntaxhighlight>

GUI, Server, Client

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

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

Windows: basexhttp.bat

<syntaxhighlight lang="batch"> @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 %* </syntaxhighlight>

Linux/Mac: basexhttp

<syntaxhighlight lang="bash">

  1. !/usr/bin/env bash
  1. 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 )"

  1. API, core, and library classes

CP=$MAIN/BaseX.jar:$MAIN/lib/*:$MAIN/lib/custom/*:$CLASSPATH

  1. Options for virtual machine (can be extended by global options)

BASEX_JVM="-Xmx2g $BASEX_JVM"

  1. Run code

java -cp "$CP" $BASEX_JVM org.basex.BaseXHTTP "$@" </syntaxhighlight>

Included Start Scripts

The BaseX Windows and ZIP distributions readily 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, there are also stop scripts available:

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

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.