操作net
import clr
import os
import os
# 获取当前路径
current_path = os.path.dirname(os.path.abspath(__file__))
dll_path = os.path.join(current_path,"demo1", "bin","Release","net7.0","demo1.dll")
clr.AddReference(dll_path)
# 导入命名空间
import demo1
# 获取 demo1 类的所有方法
methods = dir(demo1.Demo)
# 打印方法列表
print(methods)
操作js
import execjs
import json
import os
# 获取当前路径
current_path = os.path.dirname(os.path.abspath(__file__))
# 加载 JavaScript 文件
with open(os.path.join(current_path, "demo.js"), "r") as f:
js_code = f.read()
# 定义一个 Python 对象
data = {
"x": 2,
"y": 3,
"operations": ["add", "multiply"]
}
# 编译 JavaScript 代码
ctx = execjs.compile(js_code)
# 在 JavaScript 中解析 Python 对象
data_str = json.dumps(data)
data_js = ctx.eval("JSON.parse('{}')".format(data_str))
print(data_js)
# 在 JavaScript 中执行操作
result = {}
for op in data_js["operations"]:
func = "example.{}".format(op)
args = [data_js["x"], data_js["y"]]
result[op] = ctx.call(func, *args)
# 在 Python 中处理结果
print(result) # 输出 {"add": 5, "multiply": 6}
操作java
import jpype
import os
current_path = os.path.dirname(os.path.abspath(__file__))
# 启动 JVM
jpype.startJVM(jpype.getDefaultJVMPath())
jpype.addClassPath(os.path.join(current_path, "Demo.jar"))
# 加载 Java 类
Demo = jpype.JClass("Demo")
# 创建 Java 对象
demo = Demo()
# 调用 Java 方法
result = demo.add(1, 2)
print(result)
# 关闭 JVM
jpype.shutdownJVM()
# javac demo.java 将 Java 源代码编译成字节码文件,这些 .class 文件可以在任何支持 Java 的平台上运行
# jar cvf Demo.jar Demo.class 将 Demo.class 文件打包成 Demo.jar 文件