java - 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 方法。
预先感谢您的帮助
解决方案
推荐阅读
- vba - 如果将值放入带有 (For i) 的 CSV 文件中
- javascript - 将Eventlistener添加到javascript中的所有新对象
- apache-kafka - Kafka Consumer Group Rebalance 和 Group Coordinator 死亡
- javascript - OpenLayers 将几何图形渲染到 Canvas
- ios - 在 spritekit 游戏中获取屏幕的触摸位置
- jquery - 如何使用jquery获取页面加载时间
- r - R中的条件模拟(使用克里金法)与并行化?
- javascript - 如果在 foreach 中其他
- php - PHP表单数据检查提交按钮名称
- google-apps-script - gmail 插件中 UrlFetchApp.fetch() 的 HTTP 失败回调