# Scorpio-Java #
* author : while
* QQ群 : 245199668 [加群](http://shang.qq.com/wpa/qunwpa?idkey=8ef904955c52f7b3764403ab81602b9c08b856f040d284f7e2c1d05ed3428de8)
* Sco脚本的c#实现 : https://github.com/qingfeng346/Scorpio-CSharp
* 网络协议,Excel表数据转换工具 : https://github.com/qingfeng346/ScorpioConversion
* 国内用户如果网比较慢可以在此链接下载 : http://git.oschina.net/qingfeng346/Scorpio-Java
## 此脚本为java平台一个轻量级脚本,纯java实现 兼容所有Java平台以及Java语言的引擎 语法类似 javascript
## 具体脚本示例请前往c#版查看 https://github.com/qingfeng346/Scorpio-CSharp
## Scorpio-CSharp的功能会同步更新到java版本
## 可使用平台:
- [x] JavaSE
- [x] JSP
- [x] Android
- [x] libGDX
- [x] 所有使用java语言的平台
## 注意事项与Scorpio-CSharp版本的差异##
* 没有generic_method和generic_type函数,因为java下模板是假模版
## 源码目录说明:
* **Scorpio** 脚本引擎项目,平常使用只需导入或引用此目录即可
* **ScorpioExec** 跟lua.exe一样,命令行调用Scorpio脚本
* 源码项目使用ant编译,如需编译jar文件请自行编译build.xml
## Scorpio脚本Hello World函数:
```java
package Scorpio;
public class HelloWorld {
public static class Test {
private int a = 100;
public Test(int a) {
this.a = a;
}
public void Func() {
System.out.println("Func " + a);
}
public static void StaticFunc() {
System.out.println("StaticFunc");
}
}
public static void main(String[] args) {
Script script = new Script(); //new一个Script对象
script.LoadLibrary(); //加载所有Scorpio的库,源码在Library目录下
script.SetObject("CTest", script.CreateObject(new Test(300))); //SetObject可以设置一个c#对象到脚本里
//LoadString 解析一段字符串,LoadString传入的参数就是热更新的文本文件内容
try {
script.LoadString("test", "print(\"hello world\")");
String str = "MyTest = import_type(\"Scorpio.HelloWorld$Test\") //import_type 要写入类的全路径 要加上命名空间 否则找不到此类,然后赋值给 MyTest 对象\n" +
"MyTest.StaticFunc() //调用类的静态函数\n" +
"var t = MyTest(200) //new 一个Test对象, 括号里面是构造函数的参数\n" +
"t.Func() //调用类的内部函数\n" +
"CTest.Func() //调用类的内部函数 CTest是通过 script.SetObject 函数设置\n";
//Scorpio脚本调用c#函数
script.LoadString("test", str);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
```
没有合适的资源?快使用搜索试试~ 我知道了~
纯Java 实现的一个脚本语言 语法类似java s c r i p t.rar
共113个文件
java:98个
project:2个
sh:2个
需积分: 5 0 下载量 45 浏览量
2023-06-26
05:58:59
上传
评论
收藏 384KB RAR 举报
温馨提示
一、脚本解释器概述 在一些Java应用的需求中,集成某种脚本语言的支持能够带来很大的方便。例如,用户可能想要编写脚本程序驱动应用、扩展应用,或为了简化操作而编写循环和其他流程控制逻辑。在这些情况下,一种理想的解决方案是在Java应用中提供对脚本语言解释器的支持,让脚本语言解释器读取用户编写的脚本并在应用提供的类上运行这些脚本。为了实现这个目标,你可以在Java应用所运行的JVM中,运行一个基于Java的脚本语言解释器。 一些支持库,例如IBM的Bean Scripting Framework,能够帮助你把不同的脚本语言集成到Java程序。这些支持框架能够让你的Java应用在不作大量修改的情况下,运行Tcl、Python和其他语言编写的脚本。 在Java应用中集成了脚本解释器之后,用户编写的脚本能够直接引用Java应用的类,就如这些脚本属于Java程序的一部分一样。这种思路既有优点也有缺点。其优点在于,如果你想要用脚本驱动的方式对应用进行回归测试,或者想要通过脚本对应用进行低级调用,它能够带来很大的方便;其缺点在于,如果用户的脚本直接操作Java程序的内部结构而不是经过认可的API,
资源推荐
资源详情
资源评论
收起资源包目录
纯Java 实现的一个脚本语言 语法类似java s c r i p t.rar (113个子文件)
sco.bat 133B
sco.bat 133B
.classpath 369B
.classpath 232B
Scorpio.jar 226KB
ScorpioExec.jar 2KB
ScriptParser.java 42KB
ScriptLexer.java 28KB
ScriptContext.java 25KB
LibraryBasis.java 22KB
Script.java 14KB
LibraryString.java 11KB
UserdataMethod.java 11KB
ScriptArray.java 10KB
Util.java 9KB
ScorpioMaker.java 9KB
ScriptNumberLong.java 6KB
ScriptNumberInt.java 6KB
ScriptTable.java 6KB
ScriptNumberDouble.java 5KB
LibraryArray.java 5KB
ReflectUserdataType.java 5KB
TokenType.java 5KB
ScriptObject.java 5KB
LibraryMath.java 4KB
ScriptScriptFunction.java 3KB
TempOperator.java 3KB
ScriptString.java 2KB
LibraryFunc.java 2KB
UserdataType.java 2KB
ScorpioScriptFunction.java 2KB
ScriptUserdataObject.java 2KB
ScriptUserdataObjectType.java 2KB
LibraryTable.java 2KB
ScriptNumber.java 2KB
ScriptUserdataEnum.java 1KB
ScorpioExec.java 1KB
ScorpioTypeMethod.java 1KB
Token.java 1KB
FastReflectUserdataType.java 1KB
Opcode.java 1KB
ExecutionException.java 1KB
ScriptExecutable.java 930B
LibraryUserdata.java 910B
ScriptMethodFunction.java 903B
CodeTable.java 900B
LibraryJson.java 899B
ScriptNull.java 870B
ScriptBoolean.java 853B
ScriptHandleFunction.java 810B
ScriptNumberUShort.java 792B
ScriptNumberShort.java 788B
ScriptNumberFloat.java 788B
ScriptNumberULong.java 785B
ScriptNumberSByte.java 785B
ScriptFunction.java 781B
ScriptNumberByte.java 781B
ScriptNumberUInt.java 778B
ScriptInstruction.java 748B
CodeMember.java 726B
ScriptUserdata.java 672B
ScorpioMethodInfo.java 669B
UserdataField.java 659B
ScriptEnum.java 636B
Executable_Block.java 573B
TempCondition.java 547B
TempCase.java 524B
CodeAssign.java 523B
CodeCallFunction.java 516B
ReflectUserdataMethod.java 512B
CodeOperator.java 511B
CodeFunction.java 507B
NumberType.java 485B
ScorpioObjectMethod.java 483B
CodeObject.java 472B
CodeIf.java 463B
ParserException.java 453B
ScorpioStaticMethod.java 430B
ScorpioMethod.java 430B
ObjectType.java 409B
FastReflectUserdataMethod.java 390B
CodeFor.java 368B
CodeTry.java 365B
CALC.java 364B
InteriorException.java 353B
CodeSwitch.java 352B
CodeArray.java 332B
StackInfo.java 323B
CodeScriptObject.java 322B
CodeForSimple.java 320B
UserdataVariable.java 302B
MEMBER_TYPE.java 291B
ScorpioHandle.java 290B
CodeForeach.java 287B
ScriptException.java 259B
IScorpioFastReflectClass.java 257B
LexerException.java 251B
CodeCallBlock.java 251B
CodeTernary.java 249B
CodeRegion.java 239B
共 113 条
- 1
- 2
资源评论
野生的狒狒
- 粉丝: 1492
- 资源: 1530
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功