1 .\" Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights reserved.
   2 .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   3 .\"
   4 .\" This code is free software; you can redistribute it and/or modify it
   5 .\" under the terms of the GNU General Public License version 2 only, as
   6 .\" published by the Free Software Foundation.
   7 .\"
   8 .\" This code is distributed in the hope that it will be useful, but WITHOUT
   9 .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  10 .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  11 .\" version 2 for more details (a copy is included in the LICENSE file that
  12 .\" accompanied this code).
  13 .\"
  14 .\" You should have received a copy of the GNU General Public License version
  15 .\" 2 along with this work; if not, write to the Free Software Foundation,
  16 .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  17 .\"
  18 .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  19 .\" or visit www.oracle.com if you need additional information or have any
  20 .\" questions.
  21 .\"
  22 .\" Automatically generated by Pandoc 2.3.1
  23 .\"
  24 .TH "JRUNSCRIPT" "1" "2020" "JDK 14" "JDK Commands"
  25 .hy
  26 .SH NAME
  27 .PP
  28 jrunscript \- run a command\-line script shell that supports interactive
  29 and batch modes
  30 .SH SYNOPSIS
  31 .PP
  32 \f[B]Note:\f[R]
  33 .PP
  34 This tool is \f[B]experimental\f[R] and unsupported.
  35 .PP
  36 \f[CB]jrunscript\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]]
  37 .TP
  38 .B \f[I]options\f[R]
  39 This represents the \f[CB]jrunscript\f[R] command\-line options that can
  40 be used.
  41 See \f[B]Options for the jrunscript Command\f[R].
  42 .RS
  43 .RE
  44 .TP
  45 .B \f[I]arguments\f[R]
  46 Arguments, when used, follow immediately after options or the command
  47 name.
  48 See \f[B]Arguments\f[R].
  49 .RS
  50 .RE
  51 .SH DESCRIPTION
  52 .PP
  53 The \f[CB]jrunscript\f[R] command is a language\-independent command\-line
  54 script shell.
  55 The \f[CB]jrunscript\f[R] command supports both an interactive
  56 (read\-eval\-print) mode and a batch (\f[CB]\-f\f[R] option) mode of
  57 script execution.
  58 By default, JavaScript is the language used, but the \f[CB]\-l\f[R] option
  59 can be used to specify a different language.
  60 By using Java to scripting language communication, the
  61 \f[CB]jrunscript\f[R] command supports an exploratory programming style.
  62 .PP
  63 If JavaScript is used, then before it evaluates a user defined script,
  64 the \f[CB]jrunscript\f[R] command initializes certain built\-in functions
  65 and objects, which are documented in the API Specification for
  66 \f[CB]jrunscript\f[R] JavaScript built\-in functions.
  67 .SH OPTIONS FOR THE JRUNSCRIPT COMMAND
  68 .TP
  69 .B \f[CB]\-cp\f[R] \f[I]path\f[R] or \f[CB]\-classpath\f[R] \f[I]path\f[R]
  70 Indicates where any class files are that the script needs to access.
  71 .RS
  72 .RE
  73 .TP
  74 .B \f[CB]\-D\f[R]\f[I]name\f[R]\f[CB]=\f[R]\f[I]value\f[R]
  75 Sets a Java system property.
  76 .RS
  77 .RE
  78 .TP
  79 .B \f[CB]\-J\f[R]\f[I]flag\f[R]
  80 Passes \f[I]flag\f[R] directly to the Java Virtual Machine where the
  81 \f[CB]jrunscript\f[R] command is running.
  82 .RS
  83 .RE
  84 .TP
  85 .B \f[CB]\-l\f[R] \f[I]language\f[R]
  86 Uses the specified scripting language.
  87 By default, JavaScript is used.
  88 To use other scripting languages, you must specify the corresponding
  89 script engine\[aq]s JAR file with the \f[CB]\-cp\f[R] or
  90 \f[CB]\-classpath\f[R] option.
  91 .RS
  92 .RE
  93 .TP
  94 .B \f[CB]\-e\f[R] \f[I]script\f[R]
  95 Evaluates the specified script.
  96 This option can be used to run one\-line scripts that are specified
  97 completely on the command line.
  98 .RS
  99 .RE
 100 .TP
 101 .B \f[CB]\-encoding\f[R] \f[I]encoding\f[R]
 102 Specifies the character encoding used to read script files.
 103 .RS
 104 .RE
 105 .TP
 106 .B \f[CB]\-f\f[R] \f[I]script\-file\f[R]
 107 Evaluates the specified script file (batch mode).
 108 .RS
 109 .RE
 110 .TP
 111 .B \f[CB]\-f\ \-\f[R]
 112 Enters interactive mode to read and evaluate a script from standard
 113 input.
 114 .RS
 115 .RE
 116 .TP
 117 .B \f[CB]\-help\f[R] or \f[CB]\-?\f[R]
 118 Displays a help message and exits.
 119 .RS
 120 .RE
 121 .TP
 122 .B \f[CB]\-q\f[R]
 123 Lists all script engines available and exits.
 124 .RS
 125 .RE
 126 .SH ARGUMENTS
 127 .PP
 128 If arguments are present and if no \f[CB]\-e\f[R] or \f[CB]\-f\f[R] option
 129 is used, then the first argument is the script file and the rest of the
 130 arguments, if any, are passed as script arguments.
 131 If arguments and the \f[CB]\-e\f[R] or the \f[CB]\-f\f[R] option are used,
 132 then all arguments are passed as script arguments.
 133 If arguments \f[CB]\-e\f[R] and \f[CB]\-f\f[R] are missing, then the
 134 interactive mode is used.
 135 .SH EXAMPLE OF EXECUTING INLINE SCRIPTS
 136 .RS
 137 .PP
 138 \f[CB]jrunscript\ \-e\ "print(\[aq]hello\ world\[aq])"\f[R]
 139 .RE
 140 .RS
 141 .PP
 142 \f[CB]jrunscript\ \-e\ "cat(\[aq]http://www.example.com\[aq])"\f[R]
 143 .RE
 144 .SH EXAMPLE OF USING SPECIFIED LANGUAGE AND EVALUATE THE SCRIPT FILE
 145 .RS
 146 .PP
 147 \f[CB]jrunscript\ \-l\ js\ \-f\ test.js\f[R]
 148 .RE
 149 .SH EXAMPLE OF INTERACTIVE MODE
 150 .IP
 151 .nf
 152 \f[CB]
 153 jrunscript
 154 js>\ print(\[aq]Hello\ World\\n\[aq]);
 155 Hello\ World
 156 js>\ 34\ +\ 55
 157 89.0
 158 js>\ t\ =\ new\ java.lang.Thread(function()\ {\ print(\[aq]Hello\ World\\n\[aq]);\ })
 159 Thread[Thread\-0,5,main]
 160 js>\ t.start()
 161 js>\ Hello\ World
 162 
 163 js>
 164 \f[R]
 165 .fi
 166 .SH RUN SCRIPT FILE WITH SCRIPT ARGUMENTS
 167 .PP
 168 In this example, the \f[CB]test.js\f[R] file is the script file.
 169 The \f[CB]arg1\f[R], \f[CB]arg2\f[R], and \f[CB]arg3\f[R] arguments are passed
 170 to the script.
 171 The script can access these arguments with an arguments array.
 172 .RS
 173 .PP
 174 \f[CB]jrunscript\ test.js\ arg1\ arg2\ arg3\f[R]
 175 .RE