创建 JAVA 虚拟机,仅支持 32 位 JRE。
改用 java.openProcess 函数可兼容 32位、64位 JRE。
如果未找到可用的 JVM 运行库返回 null
在每个进程第一次创建JAVA 虚拟机或初始化 JVM 路径之前,
可调用 java.path.setJreHome 自定义搜索 JVM 的 JRE 运行时目录,
jar包搜索顺序为"\","\java\","~\java",
可使用 java.addClassPath 函数添加搜索路径
n可指定一个或多个启动命令行参数,
也可以把多个参数写到一个字符串参数或数组参数里,
参数类似 "-D
在 JAVA 中可以使用 System.getProperty("propertyName") 得到value的值
对于每个打开的进程,JAVA虚拟机仅创建一次实例,
因此所有参数、搜索路径等仅在首次创建虚拟机时生效
添加一个或多个查找类的根目录
添加该目录时将自动添加该目录下已存在的 *.jar 文件
子目录下的jar文件将被忽略
注意:必须在进程首次创建 Java 虚拟机之前调用该函数
添加一个或多个目录
Java中调用System.loadLibrary()时将在指定的目录查找DLL组件
编译java源文件
该函数需要系统安装JDK,可事先设置JAVA_HOME环境变量手动指定JDK位置
注意如果aardio自带了jre版本必须与JDK一致,不然java程序编译后可能无法运行
指定默认编码,
默认值为 "utf-8",
UTF-8 目前是最好也是最通用的设置,
最好不要改也不必要改
创建Java窗口应用程序返回process进程对象
命令行参数可以是数组或任意个文本参数,
如果命令行参数有多个,则包含空格的参数添加必要的双引号和转义,
如果参数@1是数组,
参数@2可指定 process.STARTUPINFO 结构体或部分字段,
规则考 process 构造函数
创建Java控制台应用程序返回process.popen对象
命令行参数可以是数组或任意个文本参数,
如果命令行参数有多个,则包含空格的参数添加必要的双引号和转义,
如果参数@1是数组,
参数@2可指定 process.STARTUPINFO 结构体或部分字段,
规则考 process 构造函数
返回 Java 运行时版号,数值。
版本号为 1.x 时返回第 2 位版本号,否则返回第 1 位版本号(Java 9 以上)。
如果不指定参数,则返回字符串格式的完整版本号。
JVM 虚拟机接口版本,
在进程首次创建虚拟机以前用于指定最低兼容版本
默认会设为 0x10006/*_JNI_VERSION_1_6*/
添加类搜索目录到 CLASSPATH,
此函数仅支持 Java6~Java8
Java9 开始不再支持,可以改用 java.addClassPath,
但 java.addClassPath 仅支持 ANSI编码路径,
addClassLoaderUrl 函数支持 UTF-8 编码路径
添加jar包或文件目录到 CLASSPATH,
Java 在 CLASSPATH 指定的目录或 jar 中搜索类,
参数可以是一个数组,也可以是多个路径参数
将一个或多个基本类型转换为java数组对象
传入参数也可以是一个table类型字符串数组
创建布尔值-返回 Java 对象
创建8位整型数值-返回 Java 对象
调用构造函数创建对象
创建64位浮点数值-返回 Java 对象
该函数如果检测到抛出的异常,并清除异常返回true
如果未检测到异常返回空值
返回是否存在指定字段名
创建32位浮点数值-返回 Java 对象
返回字段值
加载指定的类
可选用参数@2指定类文件路径、或者自内存文件加载类
如果类不存在或加载失败返回null空值 - 不会抛出异常
创建32位整型数值-返回 Java 对象
aardio.interopServices.utility类
调用Java函数,支持多个参数
对于数值类型,aardio将会自动检测适用的数值类型
也可以调用java.int,java.short,java.char,java.long等函数显式的声明数值类型
仅第一次创建java虚拟机时该值为true,
随后创建的虚拟机都会返回false
自参数 @1 指定的文件路径反序化化 Java 对象
创建64位整型数值-返回 Java 对象
java数值对象转换为 aardio 数值
java字等串对象转换为 aardio 字符串
返回参数指定的Java对象是否数值
返回参数指定的Java对象是否字符串
将 Java 对象指针转换为 aardio 数组对象,参数一指定数组元素数据类型
注意:该函数会销毁传入的 Java 对象指针
将Java字符串转换为 aardio 字符串
注意:该函数会销毁传入的 Java 对象指针
将 Java 对象指针转换为 aardio 数组对象
注意:该函数会销毁传入的 Java 对象指针
重定向错误输出到控制台
重定向标准输出到控制台,
如果在创建 Java 虚拟机以后打开控制台,
需要调用此函数才能在控制台看到 Java 的标准输出
修改字段值
创建16位整型数值-返回 Java 对象
将aardio字符串转换为java字符串对象
返回对象指针
将一个或多个字符串转换为java字符串数组
传入参数也可以是一个table类型字符串数组
JVM 虚拟机接口版本,
Java 8 的接口版本为 0x10008/*_JNI_VERSION_1_8*/,
目前 Java 10+ 的接口版本号都是 0xa0000/*JNI_VERSION_10*/
使用Java调用构造函数创建对象
不限制参数个数以及类型,
允许以类名本身替代此函数
使用 JNI 调用构造函数创建对象
参数最多只能是一个参数,或者一个参数数组,
用户应使用createInstance,该函数不限制参数个数以及类型
参数@2指定字段类型声明
与函数原型使用的语法一致
返回静态函数,参数 @2 指定函数原型。
注意 Java 区分大小写,参数只能指定单个参数或数组类型,
如果需要使用多个参数或动态参数,请直接使用 对象.函数名 获取函数
注意返回的是原生函数,调用时数值、布尔值不可以使用Java对象
JavaClassObject.registerNative(
function(env,jobject,jstring){
var str = owner.parseString(jstring)
return owner.string( func() )
},"/*函数名*/","string(string)"
)
注销所有注册到Java类中的函数
第二个参数指定字段类型声明
与函数原型使用的语法一致
返回对象的成员函数。
注意 Java 区分大小写,返回的函数支持任意个数参数。
注意无论 Java 对象是否存在该函数都会返回一个函数对象
返回对象的成员函数,参数 @2 指定函数原型。
注意 Java 区分大小写,参数只能指定单个参数或数组类型,
如果需要使用多个参数或动态参数,请直接使用 对象.函数名 获取函数
注意返回的是原生函数,调用时数值、布尔值不可以使用Java对象
_JNI_FALSE=0
_JNI_TRUE=1
_JNI_VERSION_10=0xA0000
_JNI_VERSION_11=0xB0000
_JNI_VERSION_12=0xC0000
_JNI_VERSION_13=0xD0000
_JNI_VERSION_14=0xE0000
_JNI_VERSION_15=0xF0000
_JNI_VERSION_1_1=0x10001
_JNI_VERSION_1_2=0x10002
_JNI_VERSION_1_4=0x10004
_JNI_VERSION_1_6=0x10006
_JNI_VERSION_1_7=0x10007
_JNI_VERSION_1_8=0x10008
_JNI_VERSION_9=0x90000