.\" Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
.\"
.\" This code is free software; you can redistribute it and/or modify it
.\" under the terms of the GNU General Public License version 2 only, as
.\" published by the Free Software Foundation.
.\"
.\" This code is distributed in the hope that it will be useful, but WITHOUT
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
.\" FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
.\" version 2 for more details (a copy is included in the LICENSE file that
.\" accompanied this code).
.\"
.\" You should have received a copy of the GNU General Public License version
.\" 2 along with this work; if not, write to the Free Software Foundation,
.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
.\"
.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
.\" or visit www.oracle.com if you need additional information or have any
.\" questions.
.\"
.\" Automatically generated by Pandoc 2.3.1
.\"
.TH "JRUNSCRIPT" "1" "2021" "JDK 17" "JDK Commands"
.hy
.SH NAME
.PP
jrunscript \- run a command\-line script shell that supports interactive
and batch modes
.SH SYNOPSIS
.PP
\f[B]Note:\f[R]
.PP
This tool is \f[B]experimental\f[R] and unsupported.
.PP
\f[CB]jrunscript\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]]
.TP
.B \f[I]options\f[R]
This represents the \f[CB]jrunscript\f[R] command\-line options that can
be used.
See \f[B]Options for the jrunscript Command\f[R].
.RS
.RE
.TP
.B \f[I]arguments\f[R]
Arguments, when used, follow immediately after options or the command
name.
See \f[B]Arguments\f[R].
.RS
.RE
.SH DESCRIPTION
.PP
The \f[CB]jrunscript\f[R] command is a language\-independent command\-line
script shell.
The \f[CB]jrunscript\f[R] command supports both an interactive
(read\-eval\-print) mode and a batch (\f[CB]\-f\f[R] option) mode of
script execution.
By default, JavaScript is the language used, but the \f[CB]\-l\f[R] option
can be used to specify a different language.
By using Java to scripting language communication, the
\f[CB]jrunscript\f[R] command supports an exploratory programming style.
.PP
If JavaScript is used, then before it evaluates a user defined script,
the \f[CB]jrunscript\f[R] command initializes certain built\-in functions
and objects, which are documented in the API Specification for
\f[CB]jrunscript\f[R] JavaScript built\-in functions.
.SH OPTIONS FOR THE JRUNSCRIPT COMMAND
.TP
.B \f[CB]\-cp\f[R] \f[I]path\f[R] or \f[CB]\-classpath\f[R] \f[I]path\f[R]
Indicates where any class files are that the script needs to access.
.RS
.RE
.TP
.B \f[CB]\-D\f[R]\f[I]name\f[R]\f[CB]=\f[R]\f[I]value\f[R]
Sets a Java system property.
.RS
.RE
.TP
.B \f[CB]\-J\f[R]\f[I]flag\f[R]
Passes \f[I]flag\f[R] directly to the Java Virtual Machine where the
\f[CB]jrunscript\f[R] command is running.
.RS
.RE
.TP
.B \f[CB]\-l\f[R] \f[I]language\f[R]
Uses the specified scripting language.
By default, JavaScript is used.
To use other scripting languages, you must specify the corresponding
script engine\[aq]s JAR file with the \f[CB]\-cp\f[R] or
\f[CB]\-classpath\f[R] option.
.RS
.RE
.TP
.B \f[CB]\-e\f[R] \f[I]script\f[R]
Evaluates the specified script.
This option can be used to run one\-line scripts that are specified
completely on the command line.
.RS
.RE
.TP
.B \f[CB]\-encoding\f[R] \f[I]encoding\f[R]
Specifies the character encoding used to read script files.
.RS
.RE
.TP
.B \f[CB]\-f\f[R] \f[I]script\-file\f[R]
Evaluates the specified script file (batch mode).
.RS
.RE
.TP
.B \f[CB]\-f\ \-\f[R]
Enters interactive mode to read and evaluate a script from standard
input.
.RS
.RE
.TP
.B \f[CB]\-help\f[R] or \f[CB]\-?\f[R]
Displays a help message and exits.
.RS
.RE
.TP
.B \f[CB]\-q\f[R]
Lists all script engines available and exits.
.RS
.RE
.SH ARGUMENTS
.PP
If arguments are present and if no \f[CB]\-e\f[R] or \f[CB]\-f\f[R] option
is used, then the first argument is the script file and the rest of the
arguments, if any, are passed as script arguments.
If arguments and the \f[CB]\-e\f[R] or the \f[CB]\-f\f[R] option are used,
then all arguments are passed as script arguments.
If arguments \f[CB]\-e\f[R] and \f[CB]\-f\f[R] are missing, then the
interactive mode is used.
.SH EXAMPLE OF EXECUTING INLINE SCRIPTS
.RS
.PP
\f[CB]jrunscript\ \-e\ "print(\[aq]hello\ world\[aq])"\f[R]
.RE
.RS
.PP
\f[CB]jrunscript\ \-e\ "cat(\[aq]http://www.example.com\[aq])"\f[R]
.RE
.SH EXAMPLE OF USING SPECIFIED LANGUAGE AND EVALUATE THE SCRIPT FILE
.RS
.PP
\f[CB]jrunscript\ \-l\ js\ \-f\ test.js\f[R]
.RE
.SH EXAMPLE OF INTERACTIVE MODE
.IP
.nf
\f[CB]
jrunscript
js>\ print(\[aq]Hello\ World\\n\[aq]);
Hello\ World
js>\ 34\ +\ 55
89.0
js>\ t\ =\ new\ java.lang.Thread(function()\ {\ print(\[aq]Hello\ World\\n\[aq]);\ })
Thread[Thread\-0,5,main]
js>\ t.start()
js>\ Hello\ World

js>
\f[R]
.fi
.SH RUN SCRIPT FILE WITH SCRIPT ARGUMENTS
.PP
In this example, the \f[CB]test.js\f[R] file is the script file.
The \f[CB]arg1\f[R], \f[CB]arg2\f[R], and \f[CB]arg3\f[R] arguments are passed
to the script.
The script can access these arguments with an arguments array.
.RS
.PP
\f[CB]jrunscript\ test.js\ arg1\ arg2\ arg3\f[R]
.RE
