如何利用eclipse把 class文件打包成java文件

来源:互联网 发布:淘宝加盟代理是真的吗 编辑:程序博客网 时间:2024/06/07 00:56

最近一直对eclipse的运行机制和打包方法很是困惑,上网找了一些资料,可大多都是零零散散,缺少系统性,我想在这里总结一下和大家分享,也希望大家读完后发现有什么不对的地方留言与我联系,我一定及时改正!


eclipse工程目录详解

我使用eclipse在本地新建一个project如下:

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新添加了我们的ojdbc14.jar的路径,这也是我们build的目的
.classpath文件

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:

Export

选择JAR file,这里选择你的jar包输出路径

JAR Export

然后next→next。这里要注意,要选用自己的MANIFEST.MF文件,不要让eclipse自动生成,自动生成往往不能配置我们想要的信息。

然后finish即可输出jar包。

阅读全文
0 0
原创粉丝点击