BeanShell 命令行解释器特性
BeanShell command line interpreter features
我正在尝试测试 BeanShell 的命令行解释器如何在我的机器上处理基本 Java 命令和语法,看看我是否可以以任何方式自定义其行为。我已经在我的机器上安装了 2.0b4 版 运行 OS X 10.10.1(JAR 文件在 /Library/Java/Extensions
中,按照说明)。
它是最接近我一直在寻找的东西,一个交互式 Java 解释器,但它没有一些好的解释器应该具备的标准功能。
我希望能够使用向上箭头键重复使用以前的命令,但目前它无法识别它,它只显示一个控制序列。有没有办法为 BeanShell 自定义它?
有没有办法让 BeanShell 打印出变量的值,如果我事先创建了它,只需命名它,比如
字符串 s = 新字符串("Hello World!");
;
世界,您好!
例如,这在 Python 中是可能的。
根据有关导入的文档 Java classes which(<java class>);
应该 return 指定 class 的路径位置=54=] class。但是 which( java.lang.String );
对我不起作用,我得到 NullPointerException
:
bsh % which(java.lang.String);
启动类路径映射
映射:目录 /Users/srm
// 错误: // 未捕获的异常:方法调用 cp.getClassSource:在第 42 行:在文件中:/bsh/commands/which.bsh:cp .getClassSource (className)
从方法调用:which:在第 8 行:在文件::which (java.lang.String)
目标异常:java.lang.NullPointerException
java.lang.NullPointerException
如有任何指点或帮助,我们将不胜感激。
- 运行 带有 jline 的 beanshell。
从 http://jline.sourceforge.net/index.html 下载 jline jar 然后你可以做:
java -cp jline-1.0.jar:bsh-2.0b4.jar jline.ConsoleRunner bsh.Interpreter
jline 将提供行编辑功能。我发现了这个提示 here.
存在问题 运行 jline2。首先,您将获得:
$ java -cp jline-2.12.jar:bsh-2.0b4.jar jline.ConsoleRunner bsh.Interpreter
Exception in thread "main" java.lang.NoClassDefFoundError: jline/ConsoleRunner
由于 this 问题已解决。但是,使用新的 class 你仍然会得到:
$ java -cp jline-2.12.jar:bsh-2.0b4.jar jline.console.internal.ConsoleRunner bsh.Interpreter
Exception in thread "main" java.lang.IllegalArgumentException: wrong number of arguments
由于 this 问题尚未解决。
- 使用 show() 命令触发显示值。
bsh % show();
bsh % String s = new String("Hello World");
bsh % s;
<Hello World>
bsh %
它在文档的 Useful BeanShell Commands 部分中提到。
- 也不适合我
我的情况没有失败,但也没有找到。
bsh % which(java.lang.String);
Start ClassPath Mapping
Mapping: Archive: file:/Users/me/beanshell/jline-1.0.jar
Mapping: Archive: file:/Users/me/beanshell/bsh-2.0b4.jar
Mapping: Archive: file:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar
End ClassPath Mapping
null
bsh %
我正在尝试测试 BeanShell 的命令行解释器如何在我的机器上处理基本 Java 命令和语法,看看我是否可以以任何方式自定义其行为。我已经在我的机器上安装了 2.0b4 版 运行 OS X 10.10.1(JAR 文件在 /Library/Java/Extensions
中,按照说明)。
它是最接近我一直在寻找的东西,一个交互式 Java 解释器,但它没有一些好的解释器应该具备的标准功能。
我希望能够使用向上箭头键重复使用以前的命令,但目前它无法识别它,它只显示一个控制序列。有没有办法为 BeanShell 自定义它?
有没有办法让 BeanShell 打印出变量的值,如果我事先创建了它,只需命名它,比如
字符串 s = 新字符串("Hello World!"); ; 世界,您好!
例如,这在 Python 中是可能的。
根据有关导入的文档 Java classes
which(<java class>);
应该 return 指定 class 的路径位置=54=] class。但是which( java.lang.String );
对我不起作用,我得到NullPointerException
:bsh % which(java.lang.String);
启动类路径映射 映射:目录 /Users/srm // 错误: // 未捕获的异常:方法调用 cp.getClassSource:在第 42 行:在文件中:/bsh/commands/which.bsh:cp .getClassSource (className)从方法调用:which:在第 8 行:在文件::which (java.lang.String) 目标异常:java.lang.NullPointerException
java.lang.NullPointerException
如有任何指点或帮助,我们将不胜感激。
- 运行 带有 jline 的 beanshell。
从 http://jline.sourceforge.net/index.html 下载 jline jar 然后你可以做:
java -cp jline-1.0.jar:bsh-2.0b4.jar jline.ConsoleRunner bsh.Interpreter
jline 将提供行编辑功能。我发现了这个提示 here.
存在问题 运行 jline2。首先,您将获得:
$ java -cp jline-2.12.jar:bsh-2.0b4.jar jline.ConsoleRunner bsh.Interpreter
Exception in thread "main" java.lang.NoClassDefFoundError: jline/ConsoleRunner
由于 this 问题已解决。但是,使用新的 class 你仍然会得到:
$ java -cp jline-2.12.jar:bsh-2.0b4.jar jline.console.internal.ConsoleRunner bsh.Interpreter
Exception in thread "main" java.lang.IllegalArgumentException: wrong number of arguments
由于 this 问题尚未解决。
- 使用 show() 命令触发显示值。
bsh % show(); bsh % String s = new String("Hello World"); bsh % s; <Hello World> bsh %
它在文档的 Useful BeanShell Commands 部分中提到。
- 也不适合我
我的情况没有失败,但也没有找到。
bsh % which(java.lang.String); Start ClassPath Mapping Mapping: Archive: file:/Users/me/beanshell/jline-1.0.jar Mapping: Archive: file:/Users/me/beanshell/bsh-2.0b4.jar Mapping: Archive: file:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar End ClassPath Mapping null bsh %