gpt4 book ai didi

jython - 如何在脚本内部将 jar 动态添加到 jython?

转载 作者:行者123 更新时间:2023-12-03 21:23:18 25 4
gpt4 key购买 nike

我正在用 python 编写一个与 ldap 服务器通信的包。我希望它在 CPython 和 Jython 中工作。为了让它与 CPython 一起工作,我已经成功地针对 python-ldap 进行了编码。然而,为了让它与 Jython 一起工作,我必须使用一个 java jar。

我如何将jar文件与我的包一起分发,以便它可以“导入java”,它知道它的jython,并动态地将java jar添加到路径中,并利用它。但是,如果失败,它知道它的 CPython 并使用 python-ldap 库。

有任何想法吗?

最佳答案

只需将您的 jar 添加到 sys.path,如下所示:

~ $ jython
Jython 2.5.0+ (trunk:6691, Aug 17 2009, 17:09:38)
[Java HotSpot(TM) Client VM (Apple Computer, Inc.)] on java1.6.0-dp
Type "help", "copyright", "credits" or "license" for more information.
>>> from org.thobe.somepackage import SomeClass # not possible to import yet
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named thobe
>>> import sys
>>> sys.path.append("/var/javalib/some-thobe-package.jar") # add the jar to your path
>>> from org.thobe.somepackage import SomeClass # it's now possible to import the package
>>> some_object = SomeClass() # You can now use your java class

没有比这更简单的了:)

在您的情况下,您可能想使用包的路径来查找 jar:
# yourpackage/__init__.py

import sys, os
if 'java' in sys.platform.lower():
sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)),
"your-lib.jar"))
from jython_implementation import library
else:
from cpython_implementation import library

希望有帮助!

关于jython - 如何在脚本内部将 jar 动态添加到 jython?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1730885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com