follow 开源项目关于NoClassDefFoundError错误的解决方法
生活随笔
收集整理的這篇文章主要介紹了
follow 开源项目关于NoClassDefFoundError错误的解决方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【0】README
0.1)本文旨在po出當我們follow open projects 的時候,遇到一些在open API中不存在(NoClassDefFoundError)的類時的解決方法;
【1】problem+solution: 1.1)problem:一般case下,我們是?從低version 到高version的剖析project,而低version 可能年代久遠而沒有了相應的api 類,而這時如果我們編譯該程序就可能會出現?NoClassDefFoundError; Attention)當然了,如果可以download到相應的 包含該低version 下的class文件,直接使用帶有該class文件的open jar包即可,不用這么麻煩;
1.2)solution:上google or baidu ,download 相關類的源代碼,然后再手動編譯該源代碼,注意要手動創建它所屬的包; 1.3)看個荔枝:如遇到錯誤java.lang.NoClassDefFoundError: org/apache/naming/JndiPermission,解決方法如下: step1)下載org/apache/naming/JndiPermission.java 源代碼; step2)手動建立層級文件夾?org/apache/naming/,并將?JndiPermission.java 文件放進該dir; step3)javac 編譯得到JndiPermission的class文件;(stage 1 over.) step4)將原有的open jar 包解壓(如catalina.jar 解壓為 catalina); step5)將上述的class 文件放入到 解壓后的文件目錄下(注意其包名要對應); step6)最后,再將上述文件夾打jar包(catalina -》 catalina.jar -》Bingo.) 補充)打jar包命令:進入 catalina dir,jar cvf catalina.jar ./;
Attention)再次注意,能download帶有低version class文件的open jar包再好不過,直接用它即可,如果不能download的話,可能就需要像本文這種比較麻煩的solution了;
【2】in following apache,我遇到的 NoClassDefFoundError 錯誤及其解決方法的console info 如下: E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>java -cp .;lib/servlet.jar;lib/catalina_4_1_24.jar;lib/catalina-5.5.4.jar;lib/naming-resources.jar;lib/naming-common.jar;lib/commons-collectio ns.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.Bootstrap HttpConnector Opening server socket on all host IP addresses HttpConnector[8080] Starting background thread WebappLoader[/myApp]: Deploying class repositories to work directory E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\work\_\_\myApp Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/catalina/loader/Extensionat org.apache.catalina.loader.WebappClassLoader.findAvailable(WebappClassLoader.java:744)at org.apache.catalina.loader.WebappLoader.validatePackages(WebappLoader.java:1284)at org.apache.catalina.loader.WebappLoader.start(WebappLoader.java:682)at org.apache.catalina.core.StandardContext.start(StandardContext.java:3530)at com.tomcat.chapter8.startup.Bootstrap.main(Bootstrap.java:69) Caused by: java.lang.ClassNotFoundException: org.apache.catalina.loader.Extensionat java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)... 5 moreE:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>java -cp .;lib/servlet.jar;lib/catalina_4_1_24.jar;lib/catalina-5.5.4.jar;lib/naming-resources.jar;lib/naming-common.jar;lib/commons-collectio ns.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.Bootstrap HttpConnector Opening server socket on all host IP addresses HttpConnector[8080] Starting background thread WebappLoader[/myApp]: Deploying class repositories to work directory E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\work\_\_\myApp Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/catalina/loader/Extensionat org.apache.catalina.loader.WebappClassLoader.findAvailable(WebappClassLoader.java:744)at org.apache.catalina.loader.WebappLoader.validatePackages(WebappLoader.java:1284)at org.apache.catalina.loader.WebappLoader.start(WebappLoader.java:682)at org.apache.catalina.core.StandardContext.start(StandardContext.java:3530)at com.tomcat.chapter8.startup.Bootstrap.main(Bootstrap.java:69) Caused by: java.lang.ClassNotFoundException: org.apache.catalina.loader.Extensionat java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)... 5 moreE:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>java -cp .;lib/servlet.jar;lib/catalina_4_1_24.jar;lib/catalina-5.5.4.jar;lib/naming-resources.jar;lib/naming-common.jar;lib/commons-collectio ns.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.Bootstrap HttpConnector Opening server socket on all host IP addresses HttpConnector[8080] Starting background thread LifecycleException: start: : java.lang.NoClassDefFoundError: org/apache/naming/JndiPermissionat org.apache.catalina.loader.WebappLoader.start(WebappLoader.java:678)at org.apache.catalina.core.StandardContext.start(StandardContext.java:3530)at com.tomcat.chapter8.startup.Bootstrap.main(Bootstrap.java:69)E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>java -cp .;lib/servlet.jar;lib/catalina_4_1_24.jar;lib/catalina-5.5.4.jar;lib/naming-resources.jar;lib/naming-common.jar;lib/commons-collectio ns.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.Bootstrap HttpConnector Opening server socket on all host IP addresses HttpConnector[8080] Starting background thread WebappLoader[/myApp]: Deploying class repositories to work directory E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\work\_\_\myApp Starting Wrapper Primitive Starting Wrapper Modern StandardManager[/myApp]: Seeding random number generator class java.security.SecureRandom StandardManager[/myApp]: Seeding of random number generator has been completed Resources' docBase: E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\myAppStopping wrapper Primitive Stopping wrapper ModernE:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
【1】problem+solution: 1.1)problem:一般case下,我們是?從低version 到高version的剖析project,而低version 可能年代久遠而沒有了相應的api 類,而這時如果我們編譯該程序就可能會出現?NoClassDefFoundError; Attention)當然了,如果可以download到相應的 包含該低version 下的class文件,直接使用帶有該class文件的open jar包即可,不用這么麻煩;
1.2)solution:上google or baidu ,download 相關類的源代碼,然后再手動編譯該源代碼,注意要手動創建它所屬的包; 1.3)看個荔枝:如遇到錯誤java.lang.NoClassDefFoundError: org/apache/naming/JndiPermission,解決方法如下: step1)下載org/apache/naming/JndiPermission.java 源代碼; step2)手動建立層級文件夾?org/apache/naming/,并將?JndiPermission.java 文件放進該dir; step3)javac 編譯得到JndiPermission的class文件;(stage 1 over.) step4)將原有的open jar 包解壓(如catalina.jar 解壓為 catalina); step5)將上述的class 文件放入到 解壓后的文件目錄下(注意其包名要對應); step6)最后,再將上述文件夾打jar包(catalina -》 catalina.jar -》Bingo.) 補充)打jar包命令:進入 catalina dir,jar cvf catalina.jar ./;
Attention)再次注意,能download帶有低version class文件的open jar包再好不過,直接用它即可,如果不能download的話,可能就需要像本文這種比較麻煩的solution了;
【2】in following apache,我遇到的 NoClassDefFoundError 錯誤及其解決方法的console info 如下: E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>java -cp .;lib/servlet.jar;lib/catalina_4_1_24.jar;lib/catalina-5.5.4.jar;lib/naming-resources.jar;lib/naming-common.jar;lib/commons-collectio ns.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.Bootstrap HttpConnector Opening server socket on all host IP addresses HttpConnector[8080] Starting background thread WebappLoader[/myApp]: Deploying class repositories to work directory E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\work\_\_\myApp Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/catalina/loader/Extensionat org.apache.catalina.loader.WebappClassLoader.findAvailable(WebappClassLoader.java:744)at org.apache.catalina.loader.WebappLoader.validatePackages(WebappLoader.java:1284)at org.apache.catalina.loader.WebappLoader.start(WebappLoader.java:682)at org.apache.catalina.core.StandardContext.start(StandardContext.java:3530)at com.tomcat.chapter8.startup.Bootstrap.main(Bootstrap.java:69) Caused by: java.lang.ClassNotFoundException: org.apache.catalina.loader.Extensionat java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)... 5 moreE:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>java -cp .;lib/servlet.jar;lib/catalina_4_1_24.jar;lib/catalina-5.5.4.jar;lib/naming-resources.jar;lib/naming-common.jar;lib/commons-collectio ns.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.Bootstrap HttpConnector Opening server socket on all host IP addresses HttpConnector[8080] Starting background thread WebappLoader[/myApp]: Deploying class repositories to work directory E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\work\_\_\myApp Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/catalina/loader/Extensionat org.apache.catalina.loader.WebappClassLoader.findAvailable(WebappClassLoader.java:744)at org.apache.catalina.loader.WebappLoader.validatePackages(WebappLoader.java:1284)at org.apache.catalina.loader.WebappLoader.start(WebappLoader.java:682)at org.apache.catalina.core.StandardContext.start(StandardContext.java:3530)at com.tomcat.chapter8.startup.Bootstrap.main(Bootstrap.java:69) Caused by: java.lang.ClassNotFoundException: org.apache.catalina.loader.Extensionat java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)... 5 moreE:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>java -cp .;lib/servlet.jar;lib/catalina_4_1_24.jar;lib/catalina-5.5.4.jar;lib/naming-resources.jar;lib/naming-common.jar;lib/commons-collectio ns.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.Bootstrap HttpConnector Opening server socket on all host IP addresses HttpConnector[8080] Starting background thread LifecycleException: start: : java.lang.NoClassDefFoundError: org/apache/naming/JndiPermissionat org.apache.catalina.loader.WebappLoader.start(WebappLoader.java:678)at org.apache.catalina.core.StandardContext.start(StandardContext.java:3530)at com.tomcat.chapter8.startup.Bootstrap.main(Bootstrap.java:69)E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>java -cp .;lib/servlet.jar;lib/catalina_4_1_24.jar;lib/catalina-5.5.4.jar;lib/naming-resources.jar;lib/naming-common.jar;lib/commons-collectio ns.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.Bootstrap HttpConnector Opening server socket on all host IP addresses HttpConnector[8080] Starting background thread WebappLoader[/myApp]: Deploying class repositories to work directory E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\work\_\_\myApp Starting Wrapper Primitive Starting Wrapper Modern StandardManager[/myApp]: Seeding random number generator class java.security.SecureRandom StandardManager[/myApp]: Seeding of random number generator has been completed Resources' docBase: E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\myAppStopping wrapper Primitive Stopping wrapper ModernE:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的follow 开源项目关于NoClassDefFoundError错误的解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌地球下载手机版(谷歌地球下载手机版破
- 下一篇: tomcat(8)载入器