gpt4 book ai didi

java - BeanShell 命令行解释器功能

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:43 25 4
gpt4 key购买 nike

我正在尝试测试 BeanShell 的命令行解释器如何在我的机器上处理基本的 Java 命令和语法,并查看是否可以以任何方式自定义其行为。我已在运行 OS X 10.10.1 的计算机上安装了版本 2.0b4(根据说明,JAR 文件位于 /Library/Java/Extensions 中)。

它是最接近我一直在寻找的交互式 Java 解释器,但它没有一个好的解释器应该具备的一些标准功能。

  1. 我希望能够使用向上箭头键来重用以前的命令,但目前它无法识别它,它只显示一个控制序列。有没有办法为 BeanShell 定制这个?

  2. 如果我事先创建了变量,有没有办法让 BeanShell 打印出变量的值,只需命名它,例如

    String s = new String("Hello World!");s;世界你好!

例如,这在 Python 中是可能的。

  • 根据导入Java类的文档which(<java class>);应返回指定 Java 类的类路径位置。但是which( java.lang.String );不适合我,我得到一个 NullPointerException :

    bsh % which(java.lang.String);
    启动类路径映射映射:目录/Users/srm//错误://未捕获的异常:方法调用 cp.getClassSource : at Line: 42 : in file:/bsh/commands/which.bsh : cp .getClassSource ( className )

    从方法调用:which : at Line: 8 : in file: :which ( java .lang .String )目标异常:java.lang.NullPointerException

    java.lang.NullPointerException

  • 任何指示或帮助将不胜感激。

    最佳答案

    1. 使用 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已修复的问题。但是,使用新类,您仍然会得到:

    $ 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 %

    关于java - BeanShell 命令行解释器功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28125600/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com