2 ljwbupt ljwbupt 于 2016.04.20 10:33 提问

JAVA MVC项目报错:java.lang.NoClassDefFoundError:

错误信息如下:

java.lang.NoClassDefFoundError: Could not initialize class SketchYourHouse.MediumInCJ
SketchYourHouse.SketchBeans.savePic(SketchBeans.java:56)
SketchYourHouse.SketchServlet.doPost(SketchServlet.java:46)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

整个项目网站部分用java MVC(jsp+servlet+javabeans)搭建,核心算法用c++写的,然后通过JNI与javabeans连接起来,SketchBeans就是我的javabeans,声明部分是这样写的:
MediumInCJ mcj = new MediumInCJ();
System.out.println("I got " + mcj.getProbeFeature() + "/n");

MediumInCJ()里是这样写的:
public class MediumInCJ {

static{
System.loadLibrary("dll/DLLforProbe");
}
public native int getProbeFeature();

}

请问各位大神我这是哪里出问题了,个人觉得声明这部分没什么问题阿···

2个回答

fk002008
fk002008   2016.04.20 10:37
已采纳

System.loadLibrary("dll/DLLforProbe");

没有找到定义的类
你使用native时候写的c++代码再检查下。
看看路径了什么的对不对。

ljwbupt
ljwbupt 回复lambda-fk: 还是一样结果(哭笑不得表情)
大约 2 年之前 回复
ljwbupt
ljwbupt 回复lambda-fk: 还是一样结果(哭笑不得表情)
大约 2 年之前 回复
fk002008
fk002008 对,不要弄子目录了,你把那些h文件和class文件和dll文件放到一起去试试
大约 2 年之前 回复
ljwbupt
ljwbupt 回复lambda-fk: 我发现我把MVC的内容去掉,保留成功一个java本地项目的样子,这时DLL那块是没问题的,能顺利调用里面的C++函数
大约 2 年之前 回复
ljwbupt
ljwbupt 回复lambda-fk: 您说和class文件放在一起是指放在build/classes下面吗?我jdk和vs都是64位的
大约 2 年之前 回复
fk002008
fk002008 对的。 那你就dll/DLLforProbe 这里有夹层路径不要这个dll了。直接和class文件放到一起。 另外你的jdk是32位还是64位 VS是32还是64
大约 2 年之前 回复
ljwbupt
ljwbupt 回复lambda-fk: 第三条意思是不是在VS上把jdk里的jni.h和jni_md.h加入头文件然后再生成DLL?是的话这几条我确认都做了,哭瞎
大约 2 年之前 回复
fk002008
fk002008 1:使用java -jni MediumInCJ来生成后缀名为.h的头文件 MediumInCJ.h 把这个文件放到%JAVA_HOME%\include目录下 这步做了吧 2:dll文件名字是DLLforProbe.dll 3:生成dll文件的时候加入了 参数 %java_home%\include -I%java_home%\include\win32
大约 2 年之前 回复
fk002008
fk002008 回复ljwbupt: 作如下的确认:
大约 2 年之前 回复
ljwbupt
ljwbupt 我感觉C++代码应该对吧,那块要是错了话报的应该是java.lang.UnsatisfiedLinkError?
大约 2 年之前 回复
CSDNXIAON
CSDNXIAON   2016.04.20 10:42

tomcat启动报错 - java.lang.NoClassDefFoundError: FilterConfig
JBOSS启动报错java.lang.NoClassDefFoundError:
Eclipse启动报错java.lang.NoClassDefFoundError
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
用IEDA开发WEB项目发生的java.lang.NoClassDefFoundError解决方法
编译的时发生了这个问题,然后上网上百度了一下,一下出自于别人的博客: 一          第一种,也是新手容易犯的错误,那就是classpath环境变量配置错误.这个错误在我最开始学习Android的时候就遇到过,弄的焦头烂额的.          解决办法:          在系统环境变量那一栏中点->新建classpath。          变量名:cl
maven工程启动eclipse 报错java.lang.NoClassDefFoundError:
eclipse 报错java.lang.NoClassDefFoundError: 像这种是本地工程说找不到类文件的,对于maven 工程 ,一般是依赖的版本修改了,但是本地又没有该版本的jar包, 导致了class not foud解决办法:    找到你的缺失jar 包工程, 然后 右键 ->maven ->updateProject不是本地工程, 引入相应jar包即可解决;mav...
微信开发,将微信官网的jeeweixin(java版)开发项目导入,tomcat发布时报错
2016-3-17 14:19:13 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the j
某些项目在eclipse上部署之后,启动tomcat时报错:“java.lang.NoClassDefFoundError:... ”
问题描述: 某些项目在eclipse上部署之后,启动tomcat时报错:“java.lang.NoClassDefFoundError:... ”。 但是在lib都在项目中,并且项目和 java build path 中也没有异常和报错。 问题分析: 有可能是由于项目原来在eclipse中是 java project, 转换到新的eclipse中变为 web project。无法加载项
Intellij IDEA 报错java.lang.NoClassDefFoundError
入坑,踩坑,填坑…… 今天在Idea写一个简单地基于Servlet的验证码小页面 package com.dream.servlet.response; import cn.dsna.util.images.ValidateCode; import javax.imageio.ImageIO; import javax.servlet.http.HttpServlet; import j
springMVC与freemarker整合
主要遇到以下两个问题:freemarker.template.TemplateHashModelExException in thread "main" java.lang.NoClassDefFoundError: freemarker/template/TemplateHashModelEx . . . Caused by: java.lang.ClassNotFound
java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
MyBatis与Spring结合时,出现下面的错误: Caused by: java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor 原因:缺少此包aopalliance-1.0.jar --这个jar包是spring的AOP,里面有Interceptor和Invocation aopa
Tomcat7.0起步:报错java.lang.NoClassDefFoundError: org/apach
Tomcat7.0启动:报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory 下载Tomcat7.0后,和MyEclipse进行整合 Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory at java.n
mac ox 终端运行 mvn -version报错:Exception in thread "main" java.lang.NoClassDefFoundError: ......
maven版本为3.3.9;   java版本为1.8 报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/classwor........... 原因:Java版本过高 解决:将Java版本调整为已安装的1.7版本 1、打开.bash_profile文件 open .bash_
导入SpringMVC项目报错
报错:HttpServletRequest cannot be resolved to a type 翻译:HttpServletRequest不能解决一个类型 解决: 项目名--> 右键  Property--> 选择  Java Build Path--> 选择  Add External JARs--> 选择