如何为BeanShell添加命令之Hello World实例
1个回答
展开全部
我们讨论的所有标准命令都是在“path /bsh/commands”目录下的 BeanShell JAR 文件里。
给BeanShell 提供添加到“预制式”的命令同编写任何其他 BeanShell 方法一样简单。你只需要将你的脚本使用和命令同样的名称放到文件里并把文件放到 classpath 中。然后,你可以使用 importCommands() 方法来“import”命令。
命令文件可以被放在 BeanShell 的 classpath 中的任何地方。你甚至可以随时使用 addClassPath() 或者 setClassPath() 命令来添加新的命令目录或者包含命令的 JAR 到你的脚本里。
Hello World例如,让我们做一个 helloWorld() 命令:
// 文件: helloWorld.bsh
helloWorld() {
print("Hello World!");
}将helloWorld.bsh 命令文件放到一个目录或者 classpath 的 JAR 文件里并使用 importCommands() 命令来导入它。你可以为 Java 外部得设置 classpath 或者在 BeanShell 里使用 addClassPath() 来设置。例如,假设我们已经将文件放置到路径“/home/pat/mycommands/helloWorld.bsh”里。我们然后可以这么做:addClassPath("/home/pat"); // 如果它不再我们的 classpath 里
importCommands("/mycommands");
现在我们可以使用 helloWorld() 就像其他 BeanShell 命令。
helloWorld(); // 打印 "Hello World!"
importCommands() 将接受一个“资源路径”样式的路径名称或者一个 Java 包名。简单地根据需要转换为一个资源路径或者 Java 包名,两者任选其一来载入脚本或者编译的 BeanShell 命令类。一个相对路径(比如“mycommands”)通过在前面加上“/”变成绝对路径。
例如如果你已经将 BeanShell 命令和你的 classpath 里名叫 com.xyz.utils 的 Java 包里的其他类放在一起,你可以通过这些命令来导入:// 等价的importCommands("com.xyz.utils");
importCommands("/com/xyz/utils");导入命令的作用域就像导入的类。所以如果你在一个方法或者对象里导入命令或,那么它们就在那个作用域里本地化了。
运行效果因为当前的 classpath 中不存在 helloWorld() 命令,也没有对其进行导入,所以会出现如上错误(即找不到该命令)。
给BeanShell 提供添加到“预制式”的命令同编写任何其他 BeanShell 方法一样简单。你只需要将你的脚本使用和命令同样的名称放到文件里并把文件放到 classpath 中。然后,你可以使用 importCommands() 方法来“import”命令。
命令文件可以被放在 BeanShell 的 classpath 中的任何地方。你甚至可以随时使用 addClassPath() 或者 setClassPath() 命令来添加新的命令目录或者包含命令的 JAR 到你的脚本里。
Hello World例如,让我们做一个 helloWorld() 命令:
// 文件: helloWorld.bsh
helloWorld() {
print("Hello World!");
}将helloWorld.bsh 命令文件放到一个目录或者 classpath 的 JAR 文件里并使用 importCommands() 命令来导入它。你可以为 Java 外部得设置 classpath 或者在 BeanShell 里使用 addClassPath() 来设置。例如,假设我们已经将文件放置到路径“/home/pat/mycommands/helloWorld.bsh”里。我们然后可以这么做:addClassPath("/home/pat"); // 如果它不再我们的 classpath 里
importCommands("/mycommands");
现在我们可以使用 helloWorld() 就像其他 BeanShell 命令。
helloWorld(); // 打印 "Hello World!"
importCommands() 将接受一个“资源路径”样式的路径名称或者一个 Java 包名。简单地根据需要转换为一个资源路径或者 Java 包名,两者任选其一来载入脚本或者编译的 BeanShell 命令类。一个相对路径(比如“mycommands”)通过在前面加上“/”变成绝对路径。
例如如果你已经将 BeanShell 命令和你的 classpath 里名叫 com.xyz.utils 的 Java 包里的其他类放在一起,你可以通过这些命令来导入:// 等价的importCommands("com.xyz.utils");
importCommands("/com/xyz/utils");导入命令的作用域就像导入的类。所以如果你在一个方法或者对象里导入命令或,那么它们就在那个作用域里本地化了。
运行效果因为当前的 classpath 中不存在 helloWorld() 命令,也没有对其进行导入,所以会出现如上错误(即找不到该命令)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询