
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 2024-04-29 13:11:11 +08:00 光看代码没看出啥问题( Jar 包,类是否正确需要自行确认),一个建议是可以考虑在外部设置 CLASSPATH 然后再启用脚本 |
2 givenge 2024-04-29 13:51:02 +08:00 pyjnius 不直接支持加载 jar 文件,你需要将 jar 包中的类添加到 Java 的 Classpath 中 |
3 yuyanggongzi OP 换用 JPype1 了,能够成功加载并执行。 |
4 forQ 2024-04-29 14:58:23 +08:00 换 jpype 试试 |
5 ruanimal 2024-04-30 08:28:19 +08:00 jnius_config.add_classpath(fastjson_jar_path ) |