
用 Java 做了一些 Selenium 爬虫,可以爬取到一些我需要的信息到服务器上 在本地上我使用 Selenium 爬虫是没问题的,然后我想部署到 Linux 服务器上启动看看,本地用 idea 打包成 jar 然用 java -jar 命令在 linux 上启动,但是每次启动之后调用爬虫服务就报下面的异常
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/openqa/selenium/interactions/Coordinates] with root cause java.lang.ClassNotFoundException: org.openqa.selenium.interactions.Coordinates at java.net.URLClassLoader.findClass(URLClassLoader.java:387) ~[na:1.8.0_401] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_401] at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151) ~[autoCrawler-0.0.1-SNAPSHOT.jar:na] 下面是我的 Selenium 配置
ChromeOptions chromeOptiOns= new ChromeOptions(); chromeOptions.addArguments("--headless"); chromeOptions.addArguments("--disable-gpu"); chromeOptions.addArguments("--no-sandbox"); chromeOptions.addArguments("--disable-dev-shm-usage"); chromeOptions.addArguments("lang=zh_CN.UTF-8"); chromeOptions.addArguments("window-size=1920x1080"); Linux 上 Chrome 浏览器的版本是 122.0.6261.111 ,chromedriver 的版本是 122.0.6261.94 ,Linux 使用的 JDK 是 1.8 我搜索了好久也没能解决这个问题,有没有谁懂得帮我来看看这是咋回事?我属实是搞不懂了说实话
1 randy552162 2024-03-07 16:05:51 +08:00 你怎么打的包?没有指定依赖包路径,当然找不到 class 了 |
2 tiRolin OP @randy552162 我试试你说的方法 我的打包方式就是在 idea 中使用 install 命令打包 |
3 ZnductR0MjHvjRQ3 2024-03-07 16:09:14 +08:00 gpt 怎么说? 我一般都用 python 写这个 没用过 java |
4 yh7gdiaYW 2024-03-07 16:13:47 +08:00 刚开始搞?我的建议是换 playwright ,Selenium 是过气网红了 |
5 tiRolin OP @randy552162 不好意思,我不是很懂您说的什么意思,指定依赖包路径具体怎么做?我搜索了好没整明白 |
6 KING754 2024-03-07 16:36:10 +08:00 感觉是打包方式出问题了。 今天 周四,V 我 50,我帮你解决。 |
7 defunct9 2024-03-07 16:39:48 +08:00 开 ssh ,让我上去看看 |
8 veapon 2024-03-07 16:50:59 +08:00 selenium 版本是什么? chrome 122 应该对应 selenium-java 4.18.x 以上才行 |
9 janda 2024-03-07 17:57:53 +08:00 非常典型的一个异常了、找不到类,你这个 org.openqa.selenium.interactions.Coordinates 类没有打包进去吧 |
10 randy552162 2024-03-11 16:54:28 +08:00 @tiRolin 你看下你打包的 jar 里面的结构就懂了 |