eclipse⼯程详解以及如何打jar包
最近⼀直对eclipse的运⾏机制和打包⽅法很是困惑,上⽹了⼀些资料,可⼤多都是零零散散,缺少系统性,我想在这⾥总结⼀下和⼤家分享,也希望⼤家读完后发现有什么不对的地⽅留⾔与我联系,我⼀定及时改正!
eclipse⼯程⽬录详解
我使⽤eclipse在本地新建⼀个project如下:
下⾯分别对该⽬录中的⽂件夹进⾏解释
src:源程序⽂件,主要存放我们编写的java源程序,也就是.java⽂件
JRE System Library:主要存在java的标准库,⽐如我们常⽤的java.lang包或者java.util包都在这个⽬录
的rt.jar下
Referenced Libraries:主要存放我们引⽤的外部jar包,⽐如我们操纵oracle必须使⽤的ojdbc14.jar。但必须build之后才能存放到这⾥,这个我们后⾯再讲。
.settings:该⽂件夹下主要存放eclipse的配置⽂件,.classpath存放eclipse的类搜索路径;.project主要描述⼯程的基本信息。
这⾥我想再说⼀下classpath⽂件:.classpath 的位置定义了你这个项⽬在编译时所使⽤的$CLASSPATH。classpath 的配置是有先后顺序的,JVM 搜索classpath 的策略是从前到后搜索,如果在搜索过程中,已经到需要加载的类,那么就不再向后搜索。所以,如果在classpath 中存在重复的类,那么JVM 只加载classpath 配置中,位置靠前的类。后⾯的类就不会被加载了。
build path详解
假如我现在想对oracle进⾏操作,那么我必须要引⼊ojdbc14.jar,对于这种外部引⼊的包,我们⼀般采⽤如下⽅法处理:
1. 在当前⼯程上右击,建⽴lib⽂件夹。
2. 将所需的外部jar包(或者class,甚⾄可以直接是java,eclipse在引⽤时可以直接编译)拷贝到lib⽂件夹下。
3. 在引⼊的包上右击→Build Path→Add to Build Path,这就将我们的jar包build到我们的项⽬中了,这时打开.classpath⽂件可以看到如图classpath新添加了我们的ojdbc1
4.jar的路径,这也是我们build的⽬的
ps1:关于这⼀点我要在申明⼀下,在论坛上见到⼀个朋友问⾃⼰做了⼀个项⽬,将项⽬所需引⽤的jar包放到⼀个⽂件夹下,然后在环境变量中配置了这个路径,但是eclipse却识别不了。
其实我们在⽤eclipse开发项⽬时,对每个项⽬都需要配置classpath,具体怎么配上⾯已经解释过了。我认为项⽬是独⽴于电脑环境变量的classpath的,每⼀个项⽬都需要它特定的classpath,所以在eclipse开发的时候每⼀个项⽬都会有⼀个.classpath⽂件
ps2:为什么每个项⽬需要⾃⼰的classpath?
我认为eclipse这是为了让你更好的⽣成项⽬,试想:如果你不build你当前引⽤jar,⽽只是将其放到电脑配置的classpath中,这样如果能够运⾏。但⼀旦你移植到别的电脑上,可能你的项⽬就不能⽤了,因为你没有build,⽽其他电脑的classpath并不⼀定和你开发时⼀
样,classpath中也没有存储你的引⽤路径,所以虽然你的引⽤包都拷过去了,但是jvm不到它
我们做项⽬的⽬的是为了让⽤户使⽤,所以很多时候⽣成的jar包是可执⾏jar包。但是你把引⽤build进去之后就可以直接打包发给⽤户让⽤户去⽤了吗?其实并不见得,如果你是最后直接打成⼀个可执⾏的jar包。那么你还要有⼀个MANIFEST.MF⽂件,这个⽂件是⼲什么的呢?⼜该如何打包呢?
eclipse打包及其注意事项
⽤eclipse打包很简单,但之前我们需要⼿动建⽴MANIFEST.MF⽂件。
关于这个⽂件,我觉得最好的解释是:这个⽂件决定jar包时可执⾏jar包还是不可执⾏jar包的关键,MAINFEST.MF中⽤两个重要的配置Class-Path和Main-Class,Main-Class是你的可执⾏jar包的程序⼊⼝,⼀般是你的主函数所在的类的相对路径,如果这⼀项为空,或者是该类中没有main函数,则该jar不可执⾏;Class-Path中保存你的引⽤包的路径,如我这⾥应该写lib/ojdbc14.jar。可能有⼈会问,不是已经在.classpath中build了吗?但那是eclipse的执⾏配置,⽐如当你在win中运⾏此jar时,系统环境并不读取.classpath⽽是读取MAINFEST.MF
既然有了这个MAINFEST.MF,我们刷新⼯程⽬录就可以看到
下⾯介绍打包的流程:
在需要打包的⼯程右击→Export:
选择JAR file,这⾥选择你的jar包输出路径
eclipse怎么打开已有的java文件然后next→next。这⾥要注意,要选⽤⾃⼰的MANIFEST.MF⽂件,不要让eclipse⾃动⽣成,⾃动⽣成往往不能配置我们想要的信息。
然后finish即可输出jar包。
这是我第⼀次写博客,完全是⾃⼰写的,写的不好的还请⼤家见谅,我以后会改进!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论