follow 开源项目关于NoClassDefFoundError错误的解决方法
来源:互联网 发布:淘宝违规产品怎么处理 编辑:程序博客网 时间:2024/05/12 14:12
【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-collections.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.BootstrapHttpConnector Opening server socket on all host IP addressesHttpConnector[8080] Starting background threadWebappLoader[/myApp]: Deploying class repositories to work directory E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\work\_\_\myAppException in thread "main" java.lang.NoClassDefFoundError: org/apache/catalina/loader/Extension at 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.Extension at 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-collections.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.BootstrapHttpConnector Opening server socket on all host IP addressesHttpConnector[8080] Starting background threadWebappLoader[/myApp]: Deploying class repositories to work directory E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\work\_\_\myAppException in thread "main" java.lang.NoClassDefFoundError: org/apache/catalina/loader/Extension at 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.Extension at 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-collections.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.BootstrapHttpConnector Opening server socket on all host IP addressesHttpConnector[8080] Starting background threadLifecycleException: start: : java.lang.NoClassDefFoundError: org/apache/naming/JndiPermission at 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-collections.jar;lib/catalina.jar;E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\webroot com.tomcat.chapter8.startup.BootstrapHttpConnector Opening server socket on all host IP addressesHttpConnector[8080] Starting background threadWebappLoader[/myApp]: Deploying class repositories to work directory E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\work\_\_\myAppStarting Wrapper PrimitiveStarting Wrapper ModernStandardManager[/myApp]: Seeding random number generator class java.security.SecureRandomStandardManager[/myApp]: Seeding of random number generator has been completedResources' docBase: E:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src\myAppStopping wrapper PrimitiveStopping wrapper ModernE:\bench-cluster\cloud-data-preprocess\HowTomcatWorks\src>
0 0
- follow 开源项目关于NoClassDefFoundError错误的解决方法
- 移植项目时遇到的NoClassDefFoundError错误及其解决方法
- 关于错误:Exception in thread "main" java.lang.NoClassDefFoundError 的解决方法
- NoClassDefFoundError错误解决方法
- 关于java.lang.NoClassDefFoundError的解决方法
- 关于java.lang.NoClassDefFoundError错误的问题
- 关于NoClassDefFoundError错误
- 关于NoClassDefFoundError错误
- android2.x的桌面项目程序在android4.0上运行后出现 java.lang.NoClassDefFoundError错误 解决方法
- java.lang.NoClassDefFoundError错误解决方法
- java.lang.NoClassDefFoundError错误解决方法
- java.lang.NoClassDefFoundError错误解决方法
- java.lang.NoClassDefFoundError错误解决方法
- NoClassDefFoundError错误发生的原因 以及常见的解决方法
- NoClassDefFoundError错误发生的原因 以及常见的解决方法
- 错误:java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor的解决方法
- 错误:java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor的解决方法
- 错误:java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor的解决方法
- Quartz定时器
- easyui-textbox添加validType使maxlength失效
- 学习大数据第二天:数据挖掘的基础方法——最小二乘法
- 写出执行双旋转的函数,其效率要超过执行两个单旋转
- 普通函数,虚函数,纯虚函数
- follow 开源项目关于NoClassDefFoundError错误的解决方法
- 使用boost库生成 随机数 随机字符串
- Cocos2dx: 使用ClippingNode的节点裁剪
- [WPF疑难]避免窗口最大化时遮盖任务栏
- opencv 图像的深度和通道
- 专题二1003
- 14_1到1000之间的完全数
- ACM2-1009
- Nginx压力测试工具之WebBench