首页 > 解决方案 > JPype 从 JAR 文件中导入外部库

问题描述

我有一个 JAR 文件,其中包含一些使用 Maven 导入的外部库(如 Selenium),我需要使用 JPype 从 Python 访问该文件。你能告诉我我该怎么做吗?

我在我的 Python 脚本中尝试了以下操作:

from jpype import *
import jpype.imports

# define JAR file path
jar = "myJavaProject.jar"
args = "-Djava.class.path=%s" % jar

# get JVM path and start JVM
print(jpype.getDefaultJVMPath())
jvm_path = jpype.getDefaultJVMPath()
jpype.startJVM(jvm_path, "-ea", args)

# import ChromeDriver Library from the JAR file
from org.openqa.selenium.chrome import ChromeDriver
driver = ChromeDriver();

但我收到异常ImportError: Failed to import 'org.openqa'

替代方法也不起作用:

chromeDriver = JPackage("org").openqa.selenium.chrome.ChromeDriver

抛出错误AttributeError: Java package 'org' has no attribute 'openqa'

或者

chromeDriver = jpype.JClass("org.openqa.selenium.chrome.ChromeDriver")

导致TypeError: Class org.openqa.selenium.chrome.ChromeDriver is not found

使用 WinRAR 打开 JAR 文件时,ChromeDriver 类位于上述路径中,因此应该没有任何问题。

注意:我知道有一种方法可以直接将 Selenium 用于 Python,但我也想使用 JAR 的其他方法。就这个例子而言,我需要从外部库(Selenium)创建一个对象的实例,然后我想将它传递给 Java 方法。

预先感谢您的帮助

标签: javapythonseleniumjpype

解决方案


推荐阅读