如何利用eclipse把 class文件打包成java文件
来源:互联网 发布:淘宝加盟代理是真的吗 编辑:程序博客网 时间:2024/06/10 18:43
最近一直对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新添加了我们的ojdbc14.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包输出路径
然后next→next。这里要注意,要选用自己的MANIFEST.MF文件,不要让eclipse自动生成,自动生成往往不能配置我们想要的信息。
然后finish即可输出jar包。
- 如何利用eclipse把 class文件打包成java文件
- Java把class文件打包成jar包
- 用Eclipse把.java文件打包成.jar文件
- 把class文件打包成jar包
- eclipse如何把java代码,打包成jar文件以及转换为exe可执行文件
- 使用Eclipse把java文件打包成jar
- 使用Eclipse把java文件打包成jar
- 使用Eclipse把java文件打包成jar
- java .class文件打包成.jar文件
- 利用maven打包,如何包含非class文件
- 如何将class文件打包成jar
- eclipse -- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- 如何把使用命令行或者Eclipse将Java程序打包为jar文件
- 把编译好的class文件打包成jar
- 如何把java项目(java文件)打包成.jar文件,双击即可运行.
- java的*.class打包成jar文件
- java的*.class打包成jar文件
- [iOS]如何把App打包成ipa文件,然后App上架流程[利用Application Loader]
- 大数取模:一般取模+技巧取模+快速幂取模+欧拉函数(费马小定理)
- nodejs中实现路由功能(2017-09-01 17:37) 420禁止评论编辑 | 置顶 | 删除 | 分类 nodejs中实现路由功能
- MongoDB3.x中添加用户和权限控制
- vyos
- mybatis写mapper文件注意事项
- 如何利用eclipse把 class文件打包成java文件
- 分布式一致性之Raft算法
- MySQL大表优化方案
- 请求的重定向与转发的区别
- PLSQL Developer导入dmp文件,一闪而过。
- 一天的软件测试实习
- HashSet、HashMap比较
- 诚通网盘测试
- 动态建线段树,hdu6183,参考杰少的博客