• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

bsf/H22-Dec-2020-350219

docs/H22-Dec-2020-7,2476,109

engine/H03-May-2022-4,2571,812

lib/H03-May-2022-

scripts/H22-Dec-2020-298209

src/H03-May-2022-45,05729,815

tests/H03-May-2022-8,8185,985

.gitignoreH A D22-Dec-2020356 3731

.travis.ymlH A D22-Dec-2020134 98

CHANGES.mdH A D22-Dec-202051.4 KiB1,2761,009

LICENSEH A D22-Dec-202011.1 KiB204169

NOTICEH A D22-Dec-2020161 54

README.mdH A D22-Dec-20205.6 KiB11572

build.xmlH A D22-Dec-202023 KiB749491

pom.xmlH A D22-Dec-20204.9 KiB13397

README.md

1# BeanShell
2
3## Moved from apache-extras.org
4
5On 2015-09-23, the BeanShell repository moved from https://code.google.com/a/apache-extras.org/p/beanshell/ to its new home on https://github.com/beanshell/beanshell/ as Google Code has been discontinued.
6
7BeanShell had previously moved to Apache Extras from http://beanshell.org/, which remains available for older versions.
8
9
10## Introduction
11
12BeanShell is a small, free, embeddable Java source interpreter with object scripting language features, written in Java. BeanShell dynamically executes standard Java syntax and extends it with common scripting conveniences such as loose types, commands, and method closures like those in Perl and JavaScript.
13
14You can use BeanShell interactively for Java experimentation and debugging as well as to extend your applications in new ways. Scripting Java lends itself to a wide variety of applications including rapid prototyping, user scripting extension, rules engines, configuration, testing, dynamic deployment, embedded systems, and even Java education.
15
16BeanShell is small and embeddable, so you can call BeanShell from your Java applications to execute Java code dynamically at run-time or to provide extensibility in your applications. Alternatively, you can use standalone BeanShell scripts to manipulate Java applications; working with Java objects and APIs dynamically. Since BeanShell is written in Java and runs in the same VM as your application, you can freely pass references to "live" objects into scripts and return them as results.
17
18
19## License
20
21BeanShell is licensed under the
22[Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0). See [LICENSE](LICENSE) for details, and the [NOTICE](NOTICE) file for required attributions.
23
24Earlier versions of BeanShell (2.0b4 and earlier) were distributed under
25GNU Lesser General Public License (LGPL) and Sun Public License (SPL).
26
27## Download
28
29### Source code
30
31The source code releases can be downloaded from [Bintray](https://bintray.com/beanshell/Beanshell/bsh/view#files) or [GitHub](https://github.com/beanshell/beanshell/releases)....
32
33Latest source code:
34
35- [bsh-2.0b6-src.zip](https://bintray.com/artifact/download/beanshell/Beanshell/bsh-2.0b6-src.zip)
36
37### Maven
38
39Beanshell releases are published to [Maven Central](http://central.maven.org/maven2/org/apache-extras/beanshell/bsh/). To use Beanshell with Maven, add to to your `pom.xml`:
40
41```xml
42    <dependencies>
43       <dependency>
44         <groupId>org.apache-extras.beanshell</groupId>
45         <artifactId>bsh</artifactId>
46         <version>2.0b6</version>
47       </dependency>
48    </dependencies>
49```
50
51
52### JAR binary
53
54You can also download the `bsh.jar` binary from Bintray.
55
56- [bsh-2.0b6.jar](https://bintray.com/artifact/download/beanshell/Beanshell/org/apache-extras/beanshell/bsh/2.0b6/bsh-2.0b6.jar)
57
58To execute the Beanshell user interface, either double-click the JAR file, or run it with:
59
60    java -jar bsh-2.0b6.jar
61
62You will need [Java](http://java.com/) 5 or later installed.
63
64
65## Contribute
66
67You are encouraged to raise a Github [Pull Request](https://github.com/beanshell/beanshell/pulls) with any suggested improvements and fixes!
68
69You can also raise an [issue](https://github.com/beanshell/beanshell/issues) for any questions or bugs. Remember, your stacktrace might be particularly useful for others!
70
71
72## Documentation
73
74For full documentation, see the [BeanShell user manual](https://cdn.rawgit.com/beanshell/beanshell/2.0b6/docs/manual/html/index.html)
75and the [FAQ](https://cdn.rawgit.com/beanshell/beanshell/2.0b6/docs/faq/faq.html) for frequently
76asked questions.
77
78### Summary of features
79
80 - Dynamic execution of the full Java syntax, Java code fragments, as well as loosely typed Java and additional scripting conveniences.
81 - Transparent access to all Java objects and APIs.
82 - Runs in four modes: Command Line, Console, Applet, Remote Session Server.
83 - Can work in security constrained environments without a classloader or bytecode generation for most features.
84 - The interpreter is small ~150K jar file.
85 - Pure Java.
86 - It's Free!!
87
88### Java evaluation features
89
90- Evaluate full Java source classes dynamically as well as isolated Java methods, statements, and expressions.
91
92### Scripting features
93
94- Optionally typed variables.
95- Scripted methods with optionally typed arguments and return values
96- Scripted objects (method closures)
97- Scripted interfaces and event handlers.
98- Convenience syntax for working with JavaBean? properties, hashtables, and primitive wrapper types.
99- Auto-allocation of variables to emulate Java properties files.
100- Extensible set of utility and shell-like commands
101- Dynamic classpath management including find grained class reloading
102- Dynamic command loading and user command path
103- Sophisticated namespace and callstack management
104- Detailed error reporting
105
106### BeanShell Uses
107
108- Interactive Java - try out object features, APIs and GUI widgets - "hands on".
109- Scripting extension for applications - Allow your applications to be extended via scripts in an intuitive and simple way.
110- Macro Languages - Generate scripts as macros and execute them live in your VM easily.
111- Education - Teach Java in a hands-on, live environment
112- Expression evaluator for scientific, financial apps and rules engines - evaluate complex expressions with conditions and loops.
113- Remote debugging - Embed a live, remotely accessible shell / command line in your application with just a few lines of code.
114- Use BeanShell declaratively to replace properties files and replace startup config files with real scripts that perform complex initialization and setup with the full Java syntax at their disposal.
115