JRUNSCRIPT(1) JDK Commands JRUNSCRIPT(1)

# [NAME](#NAME)

jrunscript - run a command-line script shell that supports interactive and batch modes

# [SYNOPSIS](#SYNOPSIS)

**Note:**

This tool is **experimental** and unsupported.

**jrunscript** \[*options*] \[*arguments*]

[***options***](#options)

This represents the **jrunscript** command-line options that can be used. See **Options for the jrunscript Command**.

[***arguments***](#arguments)

Arguments, when used, follow immediately after options or the command name. See **Arguments**.

# [DESCRIPTION](#DESCRIPTION)

The **jrunscript** command is a language-independent command-line script shell. The **jrunscript** command supports both an interactive (read-eval-print) mode and a batch (**-f** option) mode of script execution. By default, JavaScript is the language used, but the **-l** option can be used to specify a different language. By using Java to scripting language communication, the **jrunscript** command supports an exploratory programming style.

If JavaScript is used, then before it evaluates a user defined script, the **jrunscript** command initializes certain built-in functions and objects, which are documented in the API Specification for **jrunscript** JavaScript built-in functions.

# [OPTIONS FOR THE JRUNSCRIPT COMMAND](#OPTIONS_FOR_THE_JRUNSCRIPT_COMMAND)

[**-cp *path* or -classpath *path***](#cp)

Indicates where any class files are that the script needs to access.

[**-D*name*=*value***](#D)

Sets a Java system property.

[**-J*flag***](#J)

Passes *flag* directly to the Java Virtual Machine where the **jrunscript** command is running.

[**-l *language***](#l)

Uses the specified scripting language. By default, JavaScript is used. To use other scripting languages, you must specify the corresponding script engine's JAR file with the **-cp** or **-classpath** option.

[**-e *script***](#e)

Evaluates the specified script. This option can be used to run one-line scripts that are specified completely on the command line.

[**-encoding *encoding***](#encoding)

Specifies the character encoding used to read script files.

[**-f *script-file***](#f)

Evaluates the specified script file (batch mode).

[**-f -**](#f~2)

Enters interactive mode to read and evaluate a script from standard input.

[**-help or -?**](#help)

Displays a help message and exits.

[**-q**](#q)

Lists all script engines available and exits.

# [ARGUMENTS](#ARGUMENTS)

If arguments are present and if no **-e** or **-f** 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 **-e** or the **-f** option are used, then all arguments are passed as script arguments. If arguments **-e** and **-f** are missing, then the interactive mode is used.

# [EXAMPLE OF EXECUTING INLINE SCRIPTS](#EXAMPLE_OF_EXECUTING_INLINE_SCRIPTS)

**jrunscript -e "print('hello world')"**

**jrunscript -e "cat('http://www.example.com')"**

# [EXAMPLE OF USING SPECIFIED LANGUAGE AND EVALUATE THE SCRIPT FILE](#EXAMPLE_OF_USING_SPECIFIED_LANGUAGE_AND_EVALUATE_THE_SCRIPT_FILE)

**jrunscript -l js -f test.js**

# [EXAMPLE OF INTERACTIVE MODE](#EXAMPLE_OF_INTERACTIVE_MODE)

```

jrunscript
js> print('Hello World\n');
Hello World
js> 34 + 55
89.0
js> t = new java.lang.Thread(function() { print('Hello World\n'); })
Thread[Thread-0,5,main]
js> t.start()
js> Hello World
js>
```

# [RUN SCRIPT FILE WITH SCRIPT ARGUMENTS](#RUN_SCRIPT_FILE_WITH_SCRIPT_ARGUMENTS)

In this example, the **test.js** file is the script file. The **arg1**, **arg2**, and **arg3** arguments are passed to the script. The script can access these arguments with an arguments array.

**jrunscript test.js arg1 arg2 arg3**

2021 JDK 17

---

Document: jrunscript(1) from openjdk-17 17.0.20.1-r4 (Chainguard OS)
Source: https://github.com/openjdk/jdk17u.git
