from jnius import autoclass
import os
fastjson_jar_path = 'D:\\workProject\\RPT_CFAE_B\\Jar\\fastjson-1.2.83.jar'
# 在脚本中设置 CLASSPATH 环境变量
os.environ['CLASSPATH'] = fastjson_jar_path
# 加载 fastjson 类
JSONObject = autoclass('com.alibaba.fastjson.JSONObject')
def parse_json(json_str):
# 创建一个 JSONObject 对象
json_object = JSONObject()
# 调用 parse 方法解析 JSON 字符串
result = json_object.parse(json_str)
return result
# 示例用法
if __name__ == "__main__":
# # 读取 fastjson.jar 文件路径
# jar_path = os.path.abspath("D:\\workProject\\RPT_CFAE_B\\Jar")
# # 添加 jar 文件到 Java 类路径
# autoclass('java.lang.System').setProperty('java.class.path', jar_path)
# 要解析的 JSON 字符串
json_string = '{"name": "John", "age": 30}'
# 解析 JSON 字符串
parsed_json = parse_json(json_string)
print(parsed_json)
上面是写的 demo 然后运行报错
jnius.JavaException: JVM exception occurred: com/alibaba/fastjson/JSONObject java.lang.NoClassDefFoundError
查了各种方法都不行
1
Volekingsg 242 天前 1
光看代码没看出啥问题( Jar 包,类是否正确需要自行确认),一个建议是可以考虑在外部设置 CLASSPATH 然后再启用脚本
|
2
givenge 242 天前
pyjnius 不直接支持加载 jar 文件,你需要将 jar 包中的类添加到 Java 的 Classpath 中
|
3
yuyanggongzi OP 换用 JPype1 了,能够成功加载并执行。
|
4
forQ 242 天前
换 jpype 试试
|
5
ruanimal 241 天前
jnius_config.add_classpath(fastjson_jar_path )
|