首页 > 编程知识 正文

java中使用脚本语言(java编写脚本常用的命令)

时间:2023-12-12 12:54:04 阅读:314712 作者:ONLN

本文目录一览:

云南java培训学校告诉你脚本语言在软件开发中有什么作用?

脚本语言是我们经常在程序开发过程中使用的文档。在软件开发中,脚本语言是非常关键的。那么在编写脚本过程中需要了解和掌握哪些方法和技巧。下面云南电脑培训为大家介绍脚本语言在软件开发中的作用。

1、检查所有命令的可用性

脚本语言通常调用其他脚本或二进制文件。调用可能不存在的命令时,请检查它们是否可用。云南IT培训建议可以使用“命令-v二进制名称”来执行此操作,以查看其退出代码是否为零。

2、独立于当前工作目录

如果从不同的目录运行脚本,可能会发生错误。此脚本中,谁都不喜欢。要解决这种问题,最好使用绝对路径和脚本的相对路径进行工作。

3、如何读取输入

使用脚本可以有两种方法进行输入:环境变量和选项标签。一般情况下,昆明IT培训建议可以在不影响脚本行为的情况下使用环境变量,对于能够接触脚本的不同进程的值,可以使用脚本参数。

4、用动画的方式显示进度

部分命令需要长时间执行,并非所有脚本都显示进度条。用户等待非同步任务完成时,可以通过几种方法通知脚本正在执行。

5、用颜色编码输出

当调用脚本中的其他二进制文件或脚本时,对它们的输出进行颜色编码,以便您能够知道哪个输出来自哪个脚本或二进制文件。所以昆明电脑培训认为这样我们就不需要在全屏黑白输出文本中找到所需的输出。

北大青鸟java培训:脚本语言在软件开发中有什么作用?

脚本语言是我们经常在程序开发过程中使用的文档。

在软件开发中,脚本语言是非常关键的。

那么在编写脚本过程中需要了解和掌握哪些方法和技巧。

下面江西电脑培训为大家介绍脚本语言在软件开发中的作用。

1、检查所有命令的可用性脚本语言通常调用其他脚本或二进制文件。

调用可能不存在的命令时,请检查它们是否可用。

江西IT培训建议可以使用“命令-v二进制名称”来执行此操作,以查看其退出代码是否为零。

2、独立于当前工作目录如果从不同的目录运行脚本,可能会发生错误。

此脚本中,谁都不喜欢。

要解决这种问题,最好使用绝对路径和脚本的相对路径进行工作。

3、如何读取输入使用脚本可以有两种方法进行输入:环境变量和选项标签。

一般情况下,江西IT培训建议可以在不影响脚本行为的情况下使用环境变量,对于能够接触脚本的不同进程的值,可以使用脚本参数。

4、用动画的方式显示进度部分命令需要长时间执行,并非所有脚本都显示进度条。

用户等待非同步任务完成时,可以通过几种方法通知脚本正在执行。

5、用颜色编码输出当调用脚本中的其他二进制文件或脚本时,对它们的输出进行颜色编码,以便您能够知道哪个输出来自哪个脚本或二进制文件。

所以江西电脑培训认为这样我们就不需要在全屏黑白输出文本中找到所需的输出。

如何在Java中使用Lua脚本语言

LuaJava实际上就是按照Lua官方文档, 把Lua的C接口通过JNI包装成Java的库. 下载, 里面是一个.dll, 一个.jar. 把.dll放到java.library.path 下, 再把.lib放到classpath 中, helloworld运行OK.

但是, 测试的时候, 很快发现了第一个问题: 在调用LuaJava中提供的LuaState.pushInteger 方法的时候, 出现了错误 : Unsatisfied Link Error . 其他的LuaState.pushNumber 方法倒是没有问题. 用Depends工具看了下, 这个.dll居然没有导出pushInteger 这个函数。

(1).下载LuaJava的源代码, 查看了下Luajava.c 和 Luajava.h, 发现果然里面有点问题, 在.h里面定义了JNI中对应Java函数的C函数

JNIEXPORT void JNICALL Java_org_keplerproject_luajava_LuaState__1pushInteger 

但是.c中没有实现这个函数. 无语, 看来大马虎哪都有啊. 幸亏有源代码, 照猫画虎在Luajava.c中加上这个函数的实现,

(2).然后编译. 编译也出现了问题了, 官方文档中说可以用VC++来Build, 但是没有说官方用的是什么版本. 我用VC2005就不行. 好在Luajava比较小, 就一个.h 一个 .c , 在VC中新建一个.dll项目, 把文件加进去, 修改一下build参数 (Include 需要加上lua的头文件, lib中需要加上lua的.lib文件, 另外要选上 Compile as C Code (/TC) ) Build, 通过了.

这时再在Java中调用pushInteger方法就没有问题了.

在测试中, 发现Luajava提供的文档中, 对于Lua脚本怎么调用Java对象/方法很详细, 但是在Java中怎么调用Lua函数/取得返回值 就没有. 参考了 的Lua C文档, 实现了传递对象到Lua中并取得返回值的代码:

Test1: 测试传递简单类型, 并取得返回值:

Lua 脚本(test.lua):

function test(a,b)

return a+b

end 

Java代码:

static {

//加载Lua5.1.dll, 因为LuaJava最后还是要调用Lua的东西

System.loadLibrary("lua5.1");

}

public static void main(String[] argu) throws LuaException {

LuaState L = LuaStateFactory.newLuaState();

L.openLibs();

//读入Lua脚本

int error = L.LdoFile("test.lua");

if (error != 0) {

System.out.println("Read/Parse lua file error. Exit.");

return;

}

//找到函数test

L.getField(LuaState.LUA_GLOBALSINDEX, "test");

//参数1压栈

L.pushInteger(1);

//参数2压栈

L.pushInteger(2);

//调用!! 一共两个参数, 1个返回值

L.call(2, 1);

//保存返回值, 到a中

L.setField(LuaState.LUA_GLOBALSINDEX, "a");

//读入a

LuaObject l = L.getLuaObject("a");

//打印结果.

System.out.println("Result is " + l.getString());

L.close();

}

测试2: 传递Java对象

class Value {

public int i;

public void inc() {

i++;

}

public int get() {

return i;

}

public String toString() {

return "Value is " + i;

}

}

Lua脚本: (该脚本中调用两次对象的inc方法, 并调用get方法输出结果)

function test1(v)

v:inc();

v:inc();

print("In lua: " .. v:get());

return v

end 

Java 代码: (前面都一样, 略)

//找到函数est1

L.getField(LuaState.LUA_GLOBALSINDEX, "test1");

//生成新的对象供测试

Value v = new Value();

//对象压栈

L.pushObjectValue(v);

//调用函数test1, 此时1个参数, 1个返回值

L.call(1, 1);

//结果放在b中.

L.setField(LuaState.LUA_GLOBALSINDEX, "b");

LuaObject l = L.getLuaObject("b");

System.out.println("Result is " + l.getObject());

总结:运行结果:

Result is Value is 2

In lua: 2 

和预期的一致.

北大青鸟java培训:java编程开发语言编辑脚本应该怎么做?

脚本对于大多数程序员来说应该不陌生了吧。

今天我们就一起来了解一下,在使用java编程开发语言编写API脚本的时候都需要注意哪些问题。

Java脚本化API为谁准备?脚本语言的一些有用的特性是:方便:大多数脚本语言都是动态类型的。

您通常可以创建新的变量,而不声明变量类型,并且您可以重用变量来存储不同类型的对象。

此外,脚本语言往往会自动执行许多类型的转换,例如,必要时将数字10转换为“10”。

开发快速原型:您可以避免编辑编译运行周期,只使用“编辑运行”!应用扩展/定制:你可以“具体化”的部分应用程序,例如一些配置脚本,业务逻辑/规则和财务应用中的数学表达式。

为应用添加命令行模式,用于调试、运行时配置/部署时间。

现在大多数应用程序都有一个基于Web的GUI配置工具。

但是系统管理员/部署人员常常喜欢命令行工具。

一个“标准”的脚本语言可以用来实现这个目的,而不是发明特设的脚本语言。

Java脚本API是一种独立于框架的脚本语言,使用来自于Java代码的脚本引擎。

通过java脚本API,可以使用Java语言编写定制/可扩展的应用程序并将自定义脚本语言选择留给终用户。

Java应用程序开发者不需要在开发过程中选择扩展语言。

如果你使用JSR-223API来编写应用,那么你的用户可以使用任何JSR-223兼容的脚本语言。

脚本包Java脚本功能是在javax.script包中。

这是一个比较小的,简单的API。

脚本的出发点是ScriptEngineManager类。

一个ScriptEngineManager对象可以通过jar文件的服务发现机制发现脚本引擎。

它也可以实例化脚本引擎来解释使用特定的脚本语言编写的脚本。

脚本变量当你的java应用程序嵌入脚本引擎和脚本,你可能希望将您的应用程序对象为全局变量暴露于脚本中。

这个例子演示了如何将您的应用程序对象作为全局变量暴露于脚本中。

我们在应用程序中创建一个java.io.File对象作为全局变量,名称是file。

江苏电脑培训发现该脚本可以访问变量,例如,它可以调用它的公共方法。

注意访问java对象、领域和方法的语法依赖于脚本语言。

JavaScript支持“自然”的类似java的语法。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。