我可以实例化来自另一个 Beanshell 脚本的 beanshell 类吗?

2024-03-12

我想运行从不同的 beanshell 文件导入的类。但我不知道如何从主 beanshell 文件实例化类。这可能吗?

我导入的类:

class HelloW {
public void run(){
    print("Hello World");
}
}

应该运行并实例化类的主 beanshell 文件:

Interpreter i = new Interpreter();
i.source("HelloW.bsh");

The BeanShell 文档 http://www.beanshell.org/manual/bshmanual.html#Embedding_BeanShell_in_Your_Application在这方面相当不错,所以你应该先阅读一下。就您而言,几乎没有问题。也就是说,有脚本对象。此外,您启动的 .bsh 文件需要执行脚本对象。以您的示例为例,这段代码应该可以工作:

Hello() {
 run(){
     print("Hello World");
 }

 return this;
}

myHello = Hello();
myHello.run(); // Hello World

*BeanShell 2.0b1 及更高版本支持脚本类的更新答案*:

我创建了两个 beanshell 文件并将它们放在“scripts”目录中。

我相信,第一个“executor.bsh”就是您所说的“父”脚本。

// executor.bsh

addClassPath(".");
importCommands("scripts");

source(); // This runs the script which defines the class(es)

x = new HelloWorld();
x.start();

第二个文件包含脚本类。请注意,我使用的是脚本命令,并且根据 BeanShell 文档,文件名必须与命令名相同。

// source.bsh

source() {
    public class HelloWorld extends Thread {
        count = 5;
        public void run() {
            for(i=0; i<count; i++)
                print("Hello World!");
        }

    }
}

我在 java 类中调用了 executor.bsh:

Interpreter i = new Interpreter();
i.source("scripts/executor.bsh");

// Object val = null;
    // val = i.source("scripts/executor.bsh");
// System.out.println("Class:" + val.getClass().getCanonicalName());
// Method m = val.getClass().getMethod("start", null);
// m.invoke(val, null);

请注意,我留下了一些带注释的代码,这些代码还显示我使用反射从 Java 执行脚本类。这是结果:

Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以实例化来自另一个 Beanshell 脚本的 beanshell 类吗? 的相关文章

  • 命令行查找、sed、exec

    我在一个文件夹 子文件夹中有一堆文件 我试图制作某种单行代码 以便偶尔快速复制 粘贴 内容如下 太长 无法粘贴到此处 http pastebin com 4aZCPbwT http pastebin com 4aZCPbwT 我尝试过以下命
  • JMeter - 使用其他 BeanShell 预处理器/后处理器中的变量?

    有没有一种方法可以将变量从一个 BeanShell 预处理器 后处理器引用到另一个 BeanShell 处理器 它们在同一个线程组内 如果我在 HTTP 请求下的 BeanShell 预处理器内创建一个字符串变量 那么我可以在同一 HTTP
  • 使用 Javascript 获取脚本文件的内容

    我的网页中有以下脚本元素 使用 JavaScript 我希望能够检索脚本文件的内容 我知道我可以使用 ajax 请求来获取数据 但随后我会从本地已有的服务器获取一些内容 所以我更愿意做的是从 DOM 中检索内容 如果可能的话 或具有相同结果
  • 在脚本中更改任务计划程序中的密码

    我每个月都会更改在任务计划程序中创建的所有计划任务的密码 这是因为我们的安全策略每个月都会使我们的密码过期 由于我正在创建的计划任务数量不断增加 仅在任务计划程序中更改密码就占用了大量时间 我的问题是 脚本中是否有一种方法可以在指定任务 域
  • 编写新的脚本“语言”时从哪里开始?

    我需要编写一个在 PHP 下运行的基本脚本 模板引擎 理想情况下 我能够将我自己的标记语言与 X HTML 模板混合 并通过服务器端解析器运行文档 以动态地用数据库提供的 X HTML 替换我自己的标记 不幸的是 就我对 PHP 和脚本的了
  • 为什么这个 Lua 优化 hack 会提高性能?

    我正在寻找一个描述提高 Lua 性能的各种技术的文档 http www lua org gems sample pdf脚本代码 我很震惊竟然需要这样的技巧 虽然我引用的是 Lua 但我在 Javascript 中也见过类似的 hack 为什
  • 在 Shell 中连接字符串

    我在连接字符串 Linux shell 脚本时遇到这个问题 apphome cd dirname 0 pwd cd gt dev null echo APP Home echo apphome libdir apphome lib echo
  • 具有可选命令行模式的 Cocoa 应用程序

    我即将从头开始一个新的 Cocoa 项目 我已经给出的要求之一是能够从同一个可执行文件中选择 Cocoa GUI 或命令行模式 未来可能会增加脚本能力 但这不是现在的问题 在 Cocoa 中解决这个问题的最佳策略是什么 特别是如果我想维护某
  • 如何删除所有超过 2 天的空文件夹?

    我制作了一个脚本 删除路径中带有子文件夹的所有空文件夹 现在我必须做的是 如果一个文件夹是 2 天前创建的 并且它是空的 则应该将其与其他早于 2 天的空文件夹一起删除 如果不是 则不应删除它 我还需要 想要将已删除的文件夹写入日志中 我用
  • Python 在计算机睡眠/休眠后冻结

    我有一个使用 pythonw 在后台运行的 python 脚本 如果我关闭笔记本电脑 它就会进入睡眠模式 当我打开笔记本电脑时 我的程序几乎没有任何功能 并在几秒钟后冻结 有什么方法可以让我的脚本知道我的计算机是否进入睡眠模式 以便它可以处
  • Roslyn 脚本:运行时异常的行号信息

    我正在摆弄 Roslyn 脚本的东西 使用Microsoft CodeAnalysis CSharp Scriptingnuget 包 我想知道是否有一种方法可以将行号信息添加到堆栈跟踪中 以了解脚本内发生的异常 当我运行以下 C 代码时
  • Ruby 中 shell 命令的颜色输出

    这是一个简单的 Ruby 脚本 puts ls laG 在 OS X 的 ls 中 G 代表颜色 当在 bash 下运行时 我得到颜色输出 当从 Ruby 脚本运行上述代码时 我在结果输出中看不到颜色或 ANSI 转义序列 根据我所读到的内
  • Bash shell 中的“[ ]”与“[[ ]]”[重复]

    这个问题在这里已经有答案了 这可能已经得到回答 但我还是要问 我有两个版本的脚本 comp sh bin sh export tDay date Y m d newfile filename tDay filename filename 2
  • 程序关闭后,Windows 中的文件可以锁定多长时间?

    在我使用的几个脚本中 我遇到了间歇性的问题 有时 尝试删除文件时脚本会失败 根据错误日志 由于该文件被其他进程访问 我猜测在对文件执行的上一个操作结束后 Windows 没有时间释放该文件 窗口应该有时间再次释放文件的时间是多少时间 如果
  • 在 Bourne Shell 中从变量中删除换行符

    在 bourne shell 中我有以下内容 VALUES some command that returns multiple line values echo VALUES 好像 ONE TWO THREE FOUR 我希望它看起来像
  • 使 C# 源代码作为脚本运行?

    我正在编写一些脚本 我发现有时更多的功能会更好 就像持续尝试以 1 秒延迟删除文件并使其可移植的能力一样 我今天花了一些时间将 bat 脚本翻译为 bash 我知道我可以使用 php 或 python 但我非常喜欢静态 编译时间检查 有没有
  • VB6 - Lua 集成

    我想知道是否有人有任何集成 Lua 和 VB6 的技巧 我正在运行一个小型在线角色扮演游戏 添加一些脚本会很棒 嗯 这是可行的 我曾经为 Lua 5 0 2 做过 但找不到文件 在您拥有的选项中 您可以 将 Lua 封装在公开 Lua AP
  • 如何在 groovy 中将输出重定向到 stderr?

    我正在寻找一种将 groovy 脚本中的输出重定向到 stderr 的方法 catch Exception e println Want this to go to stderr 就在我的脑海中 你不能做一些自我接线吗 def printE
  • 编写多个mysql脚本

    是否可以在复合脚本中包含其他 mysql 脚本 理想情况下 我不想为包含的脚本创建存储过程 对于较大的项目 我想分层维护几个较小的脚本 然后根据需要组合它们 但现在 我很乐意学习如何包含其他脚本 source是一个内置命令 您可以在 MyS
  • 在 shell 脚本中连接命令字符串

    我正在维护一个现有的 shell 脚本 它将命令分配给 shell 脚本中的变量 例如 MY COMMAND bin command dosomething 然后接下来 它通过执行以下操作将 参数 传递给 MY COMMAND MY ARG

随机推荐