[ant] 在Eclipse中将Java项目打包为jar
cuisuqiang
2013-07-01
如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自己自定义配置文件MANIFEST.MF ,内容示例如下:
Manifest-Version: 1.0 Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jar lib\log4j-1.2.13.jar lib\mysql-connector-java-3.1.13-bin.jar Main-Class: src.YourMainClassName 其中的Class-Paht就指定了外来jar包的位置。请注意假设我们的项目打包后为project.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib文件夹,并将相关的jar包放在里面。否则将会出现Exception in thread "main" java.lang.NoClassDefFoundError的错误。 最后介绍一下使用Eclipse制作jar包的过程吧: 1. 首先在Eclipse中打开项目, 右键点击项目,选择“Export”; 2. 选择Java/JAR file,Next; 3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间; 这里有几个选项: * Export generated class files and resources 表示只导出生成的.class文件和其他资源文件 * Export all output folders for checked projects 表示导出选中项目的所有文件夹 * Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了 * Export refactorings for checked projects 把一些重构的信息文件也包含进去 在Select the export destination中选择导出的jar的路径,Next 4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class文件。一般不用理他,Next 5. 下一个页面里可以对项目做一些配置。 * Generate the manifest file是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。 * Use existing mainfest from workspace。这是可以选择我们自定义的.MF文件,格式如上所写。 * Seal content。要封装整个jar或者指定的包packet * Main class。这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。 最后Finish,搞定 |
||
cuisuqiang
2013-07-01
运行jar文件 cmd --进到该目录--java -jar XX.jar
|
||
cuisuqiang
2013-07-01
默认安装JDK后该文件是以Java运行的,但是不排除有人已经修改了其默认打开方式
1.进入“我的电脑”——〉“工具”——〉“文件夹选项”——〉“文件类型”——〉找到JAR类型文件 2.“高级”——〉选择“操作”中的open ——〉“编辑”——〉新建操作open,在“用于执行操作的应用程序”里输入 "C:\Program Files\Java\jre1.6.0_06\bin\javaw.exe" -jar "%1" %* (注意:引号需要,java虚拟机路径根据情况修改) ——〉“确定” |
||
usench
2013-07-03
[b][/b][u][/u]
引用 |
||
lenozhi
2013-07-03
写个build.xml脚本,在eclipse下执行就得了。
<?xml version="1.0" encoding="GB2312" ?> <project name="tscms" default="jar" basedir="."> <property file="build.properties"/> <property file="build.properties"/> <!--编译属性文件,跟具体项目相关--> <property name="jar-file-name" value="${project-name}" /> <!--jar文件名--> <property name="project-name" value="${project-name}"/><!--项目名称--> <property name="build" value="build"/><!--编译根目录--> <property name="lib" value="lib"/><!--编译依赖库--> <property name="src" value="src"/><!--源代码--> <property name="build.classes" value="${build}/classes" /><!--编译源码目录--> <property name="jar.dir" value="jar"/><!--jar生成位置--> <property name="org.dir" value="org"/><!--spring相关XSD文件--> <!-- <property name="hbm.dir.dest" value="net/tscms/ftp/ftplet/vo"/>目标hibernate hbm文件位置 <property name="hbm.dir.src" value="src/${hbm.dir.dest}"/>源hibernate hbm文件位置--> <property name="jar.dir" value="jar"/> <!--生成jar MANIFEST.MF 中lib字段--> <pathconvert property="libs.project" pathsep=" "> <mapper> <chainedmapper> <!-- remove absolute path --> <flattenmapper /> <!-- add lib/ prefix --> <globmapper from="*" to="lib/*" /> </chainedmapper> </mapper> <path> <!-- lib.home contains all jar files, in several subdirectories --> <fileset dir="${lib}"> <include name="**/*.jar" /> </fileset> </path> </pathconvert> <!--依赖jar包--> <path id="Third-Part Lib"> <fileset dir="${lib}"> <include name="**/*.jar" /> </fileset> </path> <!--准备工作:建目录、清理--> <target name="prepare" > <echo message="2.开始建目录......"/> <mkdir dir="${build.classes}" /> <mkdir dir="${jar.dir}" /> </target> <target name="clean" > <echo message="1.开始清理......"/> <delete dir="${build}" /> <delete dir="${jar.dir}" /> </target> <!--编译src--> <target name="compile" depends="clean,prepare"> <echo message="3.开始编译......"/> <javac srcdir="${src}" destdir="${build.classes}" failonerror="true" debug="true" target="1.5" > <compilerarg line="-encoding UTF-8 "/> <classpath refid="Third-Part Lib"/> </javac> </target> <target name="dirPrepare"> <echo message="4.准备打包相关文件、目录......"/> <!--准备META-INF中需要的文件--> <mkdir dir="${build.classes}/META-INF"/> <copy todir="${build.classes}/META-INF"> <fileset dir="META-INF"/> </copy> <!--准备spring的xsd--> <mkdir dir="${build.classes}/org"/> <copy todir="${build.classes}/org"> <fileset dir="${org.dir}"/> </copy> <!--准备hbm文件 <copy todir="${build.classes}/${hbm.dir.dest}"> <fileset dir="${hbm.dir.src}"/> </copy>--> </target> <!--打jar包--> <target name="jar" depends="compile,dirPrepare"> <echo message="5.开始打包......"/> <tstamp></tstamp> <jar destfile="${jar.dir}/${jar-file-name}-${version}.jar" basedir="${build.classes}" includes="**"> <manifest> <!-- 此处需要根据需要进行修改 --> <attribute name="Main-Class" value="${main-class}"/> <attribute name="Class-Path" value="${libs.project}"/> </manifest> </jar> </target> </project> |
||
qbibnmdb
2013-07-03
还在为Class Not Found烦恼么? 试试 http://www.boyunjian.com/do/jarse/index.html?f=1
输入类名即可查找JAR包,超方便. |
||
alang123
2013-07-05
MF文件写好了很简单
|
||
suncf1985
2013-07-05
有个插件很好用啊..fat_jar
|
||
wzjin
2013-07-07
suncf1985 写道 有个插件很好用啊..fat_jar
以前一直用这个插件,尤其做swing开发。 |
||
basakasky
2013-07-08
用过maven打包以后觉得很方便啊
|