zoukankan      html  css  js  c++  java
  • 使用百度开发者中心, 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文件)
  • 相关阅读:
    小透明学弟的华为上岸之路
    手把手体验远程开发,确实爽
    老弟做了个网盘,炸了!
    聊聊我在腾讯和字节工作感受
    2021,编程语言如何选择?
    优化了破网站的搜索功能
    15 道超经典大厂 Java 面试题!重中之重
    我两年的坚持,值了!
    聊聊百度搜索背后的故事
    struts2的配置步骤
  • 原文地址:https://www.cnblogs.com/chenyao/p/3092557.html
Copyright © 2011-2022 走看看