首页 > 代码库 > 将jar包直接Buldpath所引起的问题

将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包

 

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

 

将jar包直接Buldpath所引起的问题