【发布时间】:2018-04-20 20:39:13
【问题描述】:
我在导入使用某些外部 jar 的 java 代码时遇到问题,比如 selenium_standalone_server jar。
我尝试使用没有在 java 中使用 jar 的普通代码,在这种情况下,我能够导入并运行代码,但是当我在 java 代码中使用一些 jar,然后尝试将该类导入 jython 时会出错。
这是我使用的示例代码。我在“jython_test.jar”下面创建了代码的jar
package Jython_workspace;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class selenium_try {
public void launch_browser()
{
WebDriver driver = new FirefoxDriver();
System.out.println("Hello Google...");
driver.get("http://google.com");
}
}
此代码使用 selenium_server-standalone-3.11.0.jar。
在 jython 中导入 java jar。
import sys
sys.path.append("jython_test.jar")
from jython_test import selenium_try as sel
beach = sel.launch_browser()
遇到的错误。
Traceback (most recent call last):
File "D:\PD\sublime_code\Jython_workspace\try_selenium_python.py", line 5, in <module>
from jython_test import selenium_try as sel
java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.python.core.Py.loadAndInitClass(Py.java:991)
at org.python.core.Py.findClassInternal(Py.java:926)
at org.python.core.Py.findClassEx(Py.java:977)
at org.python.core.packagecache.SysPackageManager.findClass(SysPackageManager.java:133)
at org.python.core.packagecache.PackageManager.findClass(PackageManager.java:33)
at org.python.core.packagecache.SysPackageManager.findClass(SysPackageManager.java:122)
at org.python.core.PyJavaPackage.__findattr_ex__(PyJavaPackage.java:134)
at org.python.core.PyObject.__findattr__(PyObject.java:946)
at org.python.core.imp.importFromAs(imp.java:1160)
at org.python.core.imp.importFrom(imp.java:1132)
at org.python.pycode._pyx0.f$0(D:\PD\sublime_code\Jython_workspace\try_selenium_python.py:7)
at org.python.pycode._pyx0.call_function(D:\PD\sublime_code\Jython_workspace\try_selenium_python.py)
at org.python.core.PyTableCode.call(PyTableCode.java:167)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1386)
at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:296)
at org.python.util.jython.run(jython.java:362)
at org.python.util.jython.main(jython.java:142)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver
at org.python.core.SyspathJavaLoader.findClass(SyspathJavaLoader.java:131)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 20 more
java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
当 java 使用 3rd 方 jars 然后我们想在 jython 中导入时如何解决这个问题。
【问题讨论】:
标签: java selenium-webdriver jython-2.7