Linux
Nutch 抱怨 Java 8 版本不匹配但只安裝了 Java 7
我正在關注來自https://wiki.apache.org/nutch/NutchTutorial的 Nutch 教程
我有來自 Apache 站點的 Solr 5.5.4 和來自 Apache 站點的 Nutch 1.13
我正在使用 Oracle Java 7,我首先嘗試使用 openjdk-7 並得到相同的錯誤(下)
我按照教程進入執行 bin/inject 的步驟,我得到一個異常“不支持的 major.minor 版本 52.0”——我相信它是 Java 8。我的系統上沒有安裝 Java 8,這是一個新的Debian 安裝。(下面的完整錯誤消息)
我該如何解決這個錯誤?
user@Nutch-1:~/apache-nutch-1.13$ bin/nutch inject crawl/crawldb urls Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/nutch/crawl/Injector : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) user@Nutch-1:~/apache-nutch-1.13$ java -version java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode) user@Nutch-1:~/apache-nutch-1.13$ which java /usr/bin/java user@Nutch-1:~/apache-nutch-1.13$ /usr/bin/java -version java version "1.7.0_80" user@Nutch-1:~/apache-nutch-1.13$ echo $JAVA_HOME /usr/lib/jvm/java-7-oracle/jre/ user@Nutch-1:~/apache-nutch-1.13$ cd $JAVA_HOME user@Nutch-1:/usr/lib/jvm/java-7-oracle/jre$ bin/java -version java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
我通過安裝 Java 8 解決了這個問題。我做了一堆不同的Google搜尋,試圖探勘更多關於 Nutch 和 Java 版本的資訊,我發現了這個https://issues.apache.org/jira/browse/NUTCH-2171(這是一個名為“將 Nutch Trunk 升級到 Java 1.8”的錯誤,在 Nutch 1.3 中標記為“已修復”)
所以我沒有正確閱讀錯誤資訊。似乎是說載入的某些程式碼需要版本 52,我認為這意味著 Java 版本 52 與載入的某些程式碼不兼容。