zoukankan      html  css  js  c++  java
  • 将jar包直接Buldpath所引起的问题

    今天在学习jasperReports时遇到个很郁闷的问题,发现自己的jar包通过Buildpath导进去后,一运行,出现了一些错误。

    找不到类

    这就很尴尬了,我已经按要求都导进去了,竟然提示我找不到类。

    然后我就一个人瞎弄瞎摸索(不懂Java虚拟机,刚学Java,好气)

    然后我发现,我将jar包加入了lib后,程序运行起来了!!!

    然后我很不解,就去求解。。找到了以下让我感觉比较有道理的,但我还不是很理解

    上图来自http://blog.csdn.net/enjoywj2523/article/details/50858076

    上图来自http://www.educity.cn/wenda/150502.html

    然后我也不是很理解,我也找不到好的解释,我决定这个东西学好,就去好好研究Java虚拟机,java的机制,这很重要!!!

    (希望看到的,有空的大牛解惑)

    刚写完,不甘心又查了下,我看到了一个更有感觉的解释

    ========================================================

    我通过Eclipse的 User Libranry 将jar导入 Eclipse里面,编译没有问题,运行的时候就报class文件没有定义,后来上网上查了下,原因找到啦,是这样的: 
    Java Build Path导入包和把包复制到lib下是有区别的,它俩其实不会冲突,也没有什么关系的,Java Build Path是我们编译需要的包,在比如在import ***.***.***时如果没用Java Build Path导入包的话类里面就有红叉,说不识别这个类;导入到lib下是程序运行时需要的包,即便用Java Build Path导入过的包,没放到lib下,运行项目时会出现ClassNotFoundException的异常.

    来自http://blog.csdn.net/aspnet2002web/article/details/7309423

    ========================================================

    那java都会编译哪些jar包,哪些jar包又是运行时候才用到呢。。。。。

    经过一些查找和思考,应该是这样:

    通过buildpath,在编译的时候是可以找到jar包,但这时lib下没有这个jar包,当你在Tomcat下运行时,tomcat会调用工程lib中的jar包

    有点乱,先这样,慢慢接触,慢慢理解。。。。心塞 

    MD,昨晚在回去的路上,冷风吹拂中,我TM顿悟了。。。这问题简直弱爆了

    ===============================================

    tomcat只会调用lib下的jar包进行编译!!!而eclipse之类的ide只能编译调用你用buildpath一类操作导入的包,当你调用了没导入的包才会提示错误,这时你发现运行了后,找不到类,我擦,什么鬼。原来特么的,ide调用了tomcat,tomcat只会编译lib下的jar包,卧槽。
    饶了一圈,我特么发现,我以前配spring mvc框架,配了一周,最后用了maven才搞定,现在才知道原来当时lib中连jar包都没有,我擦,简直智障。


  • 相关阅读:
    zoj 1610(明天做)
    在C#中ParameterizedThreadStart和ThreadStart区别
    datagridview显示行号
    不允许对64位应用程序进行修改”的解决方法
    SQL查询表和存储过程创建修改日期
    推荐一个代码自动完成的工具AutoCode
    .net中的认证(authentication)与授权(authorization)
    SQL语句使用总结(二)
    C#/WinForm给控件加入hint文字
    sql server 2008 express 安装的时提示“重启计算机失败"
  • 原文地址:https://www.cnblogs.com/dj3839/p/6112017.html
Copyright © 2011-2022 走看看