# BeanShell Commands

BeanShell includes a set of commands; subroutines that can be called from any script or macro. The following is a summary of those commands which may be useful within jEdit.

Java classes in plugins cannot make use of BeanShell commands directly. However, these commands can be called from BeanShell code that is part of a plugin, for example the snippets in `actions.xml`, or any BeanShell scripts shipped with the plugin and loaded on startup.

## Output Commands

-                             void cat

                              String
                              filename

  Writes the contents of `filename` to the activity log.

-                             void javap

                              String | Object | Class
                              target

  Writes the public fields and methods of the specified class to the output stream of the current process.

-                             void print

                              arg

  Writes the string value of the argument to the activity log, or if run from the Console plugin, to the current output window. If `arg` is an array, `print` runs itself recursively on the array's elements.

## File Management Commands

-                             void cd

                              String
                              dirname

  Changes the working directory of the BeanShell interpreter to `dirname`.

-                             void cp

                              String
                              fromFile

                              String
                              toFile

  Copy `fromFile` to `toFile`.

-                             void dir

                              String
                              dirname

  Displays the contents of directory `dirname`. The format of the display is similar to the Unix `ls -l` command.

-                             void mv

                              String
                              fromFile

                              String
                              toFile

  Moves the file named by `fromFile` to `toFile`.

-                             File pathToFile

                              String
                              filename

  Create a `File` object corresponding to `filename`. Relative paths are resolved with reference to the BeanShell interpreter's working directory.

-                             void pwd

  Writes the current working directory of the BeanShell interpreter to the output stream of the current process.

-                             void rm

                              String
                              pathname

  Deletes the file name by `pathname`.

## Component Commands

-                             JFrame frame

                              Component
                              frame

  Displays the component in a top-level `JFrame`, centered and packed. Returns the `JFrame` object.

-                             Object load

                              String
                              filename

  Loads and returns a serialized Java object from `filename`.

-                             void save

                              Component
                              component

                              String
                              filename

  Saves `component` in serialized form to `filename`.

-                             Font setFont

                              Component
                              comp

                              int ptsize

  Set the font size of `component` to `ptsize` and returns the new font.

## Resource Management Commands

-                             URL getResource

                              String path

  Returns the resource specified by `path`. An absolute path must be used to return any resource available in the current classpath.

## Script Execution Commands

-                             Thread bg

                              String
                              filename

  Run the BeanShell script named by `filename` in a copy of the existing namespace and in a separate thread. Returns the `Thread` object so created.

-                             void exec

                              String
                              cmdline

  Start the external process by calling `Runtime.exec()` on `cmdline`. Any output is directed to the output stream of the calling process.

-                             Object eval

                              String
                              expression

  Evaluates the string `expression` as a BeanShell script in the interpreter's current namespace. Returns the result of the evaluation of `null`.

-                             org.gjt.sp.jedit.bsh.This
                                  run

                              String
                              filename

  Run the BeanShell script named by `filename` in a copy of the existing namespace. The return value represent the object context of the script, allowing you to access its variables and methods.

-                             void
                              setAccessibility

                              boolean flag

  If `flag` is `true`, BeanShell scripts are allowed to change and modify private variables, and call private methods. The default is `false`.

-                             void
                              setStrictJava

                              boolean flag

  If `flag` is `true`, BeanShell scripts must follow a much more strict, Java-like syntax, and are not able to use the convenience features described in .

-                             void source

                              String
                              filename

  Evaluates the contents of `filename` as a BeanShell script in the interpreter's current namespace.

## BeanShell Object Management Commands

-                             bind

                              org.gjt.sp.jedit.bsh.This
                                  ths

                              org.gjt.sp.jedit.bsh.Namespace
                              namespace

  Binds the scripted object `ths` to `namespace`.

-                             void clear

  Clear all variables, methods, and imports from this namespace. If this namespace is the root, it will be reset to the default imports.

-                             org.gjt.sp.jedit.bsh.This
                                  extend

                              org.gjt.sp.jedit.bsh.This
                              object

  Creates a new BeanShell `This` scripted object that is a child of the parameter `object`.

-                             void
                              importObject

                              Object
                              object

  Import an object into this namespace. This is somewhat similar to Java 1.5 static class imports, except you can import the methods and fields of a Java object instance into a BeanShell namespace, for example:

      Map map = new HashMap();
          importObject( map );
          put("foo", "bar");
          print( get("foo") ); // "bar"

-                             org.gjt.sp.jedit.bsh.This
                                  object

  Creates a new BeanShell `This` scripted object which can hold data members. You can use this to create an object for storing miscellaneous crufties, like so:

      crufties = object();
      crufties.foo = "hello world";
      crufties.counter = 5;
      ...

-                             setNameSpace

                              org.gjt.sp.jedit.bsh.Namespace
                              namespace

  Set the namespace of the current scope to `namespace`.

-                             org.gjt.sp.jedit.bsh.This
                                  super

                              String
                              scopename

  Returns a reference to the BeanShell `This` object representing the enclosing method scope specified by `scopename`. This method work similar to the `super` keyword but can refer to enclosing scope at higher levels in a hierarchy of scopes.

-                             void unset

                              String name

  Removes the variable named by `name` from the current interpreter namespace. This has the effect of undefining the variable.

## Other Commands

-                             void debug

  Toggles BeanShell's internal debug reporting to the output stream of the current process.

-                             getSourceFileInfo

  Returns the name of the file or other source from which the BeanShell interpreter is reading.