当前位置:首页 > 服务端 > 使用百度开发者中心, class not found问题

使用百度开发者中心, class not found问题

下载了百度开发者中心的eclipse,和ibatis的demo, 新建server,可是启动时候, 总报drive不能加载的错误。 可是明明baidu的sdk包里已经有这个jar了,也已经被buildclass了。

后来我试试了下,把这个jar放到web-inf里面的lib中,文件就解决了。对于这个问题很困惑,为什么明明已经在buildClass里,还找不到这个class呢?为什么一定要放到lib里,网上查了相关信息:

eclipse工程下的library是用来编译里面的src中java文件的
实际发布到tomcat时,仅仅只复制了WEB-INF/lib里面的jar包,所以出现eclipse可以正常编译但tomcat运行是找不到类,
如果你是用的eclipse j2ee IDE,你去WorkSpace\.metadata\.plugins\**.server.core\wtpwebapps找到运行时发布的工程就可以明白了
refernced Libraries下面的jar包是Eclipse提供的功能而已,就好像你告诉它你的项目用到哪些包,然后它启动的时候便会加载,这样你写程序的时候它就会有类提示或错误提示。

WEB-INF/lib 下面是给服务器看的,服务器每次启动会把你的WEB-INF/lib下面的jar加载进来,服务器根本不认识你的refernced Libraries那些东西。

而每次我们在我们所做的项目中每次建立我们建立动态网站(Eclipse开发) 结构目录是这样的,当我们在WEB-INF/lib的文件夹下加入jar包时,在Libraries的
Web App Libraries文件夹下会自动为我们复制相应的jar包到其目录下。

jre和jdk的区别

 

JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,
也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。但是光有JVM还不能成class的执行,
因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,
lib中则是jvm 工作所需要的类库,而jvm和lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给别人,
这样别人就可以运行你写程序了。(jre里有运行.class的java.exe)从而得出结论JRE是个运行环境,运行Java程序的时候就需要JRE。 JDK是个开发环境。因此写Java程序的时候需要JDK,而JDK里面已经包含了JRE,因此对JAVA_HOME设置为JDK的路径时也可以正常运行Java程序。jdk包含最主要的4部分 bin:最主要的是编译器(javac.exe将.java编译成.class文件) include:java和JVM交互用的头文件 lib:java和JVM交互用的类库 jre:java运行环境(java.exe运行.class文件)

 

 

 

作者:叶子盛忆
来源链接:https://www.cnblogs.com/chenyao/archive/2013/05/22/3092557.html

版权声明:
1、Java侠(https://www.javaxia.com)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaxia.com/server/125810.html

标签: class not found
分享给朋友: