❶ 如何把java程序打包成.jar
方案一:用Eclipse自带的Export功能
步骤1:准备主清单文件 “MANIFEST.MF”,
步骤2:右击Java工程选择Export—>选择JAR file—>Next
步骤3:选择要打包的文件,不需要的文件不必打包,减小打包后的jar文件大小,并进行选项配置如下
步骤4:选择我们在第一步中自定义的配置文件路径,这一步很重要,不能采用默认选项
方案二:安装Eclipse打包插件Fat Jar
Fat Jar Eclipse Plug-In是一个可以将Eclipse Java Project的所有资源打包进一个可执行jar文件的小工具,可以方便的完成各种打包任务,我们经常会来打jar包,但是eclipse自带的打包jar似乎不太够用,Fat Jar是eclipse的一个插件,特别是Fat Jar可以打成可执行Jar包,并且在图片等其他资源、引用外包方面使用起来更方便。
步骤1:右击工程项目选择Buile Fat Jar
步骤2:配置jar文件存放目录,主Main文件等,如下图
步骤3:选择所要用到的第三方jar包
❷ 如何将java文件打包成jar
先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么:
用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
选项:
-c 创建新的存档
-t 列出存档内容的列表
-x 展开存档中的命名的(或所有的〕文件
-u 更新已存在的存档
-v 生成详细输出到标准输出上
-f 指定存档文件名
-m 包含来自标明文件的标明信息
-0 只存储方式;未用zip压缩格式
-M 不产生所有项的清单(manifest〕文件
-i 为指定的jar文件产生索引信息
-C 改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。
示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中
❸ 如何将java代码打包成jar包
方法:
1、启动eclipse;
2、在eclipse中建立好工程与类并写好代码;
3、点击“File->Export”;
4、在弹击的界面中选择“Java->JAR file”,再点击“Next”;
5、选择要打包的文件,再点击“Browse”;
6、在弹出的界面中选择好打包后的文件的存放路径,再输入文件名,最后点击“保存”;
7、点击“Finish”;
8、打包成功。
❹ java如何打包
建议使用ANT打包工具,下载地址:http://apache.justdn.org/ant/binaries/apache-ant-1.6.5-bin.zip
此工具用java编写,跨平台,能实现很多功能:编译、打包、运行、文件操作、数据库操作、自定义任务等。
主要使用方法:在工程目录下编写build.xml配置文件,然后运行ant即可:
#ant
或
#java -jar ant.jar
下面给你提供一个例子,是jakarta-oro-2.0.8的包的build.xml
<?xml version="1.0"?>
<project default="jar">
<!-- Allow properties following these statements to be overridden -->
<!-- Note that all of these don't have to exist. They've just been defined
incase they are used. -->
<property file="build.properties"/>
<!--
<property file=".ant.properties"/>
<property file="${user.home}/.ant.properties"/>
<property file="default.properties"/>
-->
<!-- prepare target. Creates build directories. -->
<target name="splash">
<splash imageurl="./ant_logo_medium.gif"/>
</target>
<target name="prepare" depends="splash" description="Creates build directories.">
<tstamp>
<format property="DATE" pattern="yyyy-MM-dd hh:mm:ss" />
</tstamp>
<mkdir dir="${build.dest}"/>
<mkdir dir="${build.dest}/META-INF"/>
< todir="${build.dest}/META-INF">
<fileset dir="${top.dir}">
<include name="LICENSE"/>
</fileset>
</>
<mkdir dir="${build.tests}"/>
<available file="${jakarta-site2.dir}/lib" type="dir"
property="AnakiaTask.present"/>
</target>
<target name="prepare-error" depends="prepare"
description="Prints error message for prepare target."
unless="AnakiaTask.present">
<echo>
AnakiaTask is not present! Please check to make sure that
velocity.jar is in your classpath.
</echo>
</target>
<!-- lib target. Compiles the library classes only -->
<target name="lib" depends="prepare"
description="Compiles the library classes only.">
<javac srcdir="${build.src}"
destdir="${build.dest}"
excludes="examples/**,tools/**"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"/>
</target>
<!-- examples target. Compiles the example classes. -->
<target name="examples" depends="prepare,lib"
description="Compiles the example classes.">
<javac srcdir="${build.src}"
destdir="${build.dest}"
includes="examples/**"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"/>
</target>
<!-- tools target. Compiles the tool classes. -->
<target name="tools" depends="prepare,lib"
description="Compiles the tool classes.">
<javac srcdir="${build.src}"
destdir="${build.dest}"
includes="tools/**"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"/>
</target>
<!-- tests target. Compiles and runs the unit tests. -->
<target name="tests" depends="prepare,lib"
description="Compiles and runs the unit tests.">
<javac srcdir="${build.src}/tests"
destdir="${build.tests}"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}"/>
</target>
<!-- jar target. Compiles the source directory and creates a .jar file -->
<target name="jar" depends="lib" description="Compiles the source directory and creates a .jar file.">
<jar jarfile="${top.dir}/${final.name}.jar"
basedir="${build.dest}"
includes="org/**,META-INF/**"
excludes="**/package.html,**/overview.html">
<manifest>
<section name="org/apache/oro">
<attribute name="Specification-Title"
value="Jakarta ORO" />
<attribute name="Specification-Version"
value="${version}" />
<attribute name="Specification-Vendor"
value="Apache Software Foundation" />
<attribute name="Implementation-Title"
value="org.apache.oro" />
<attribute name="Implementation-Version"
value="${version} ${DATE}" />
<attribute name="Implementation-Vendor"
value="Apache Software Foundation" />
</section>
</manifest>
</jar>
</target>
<!-- javadocs target. Creates the API documentation -->
<target name="javadocs" depends="prepare"
description="Creates the API documentation.">
<mkdir dir="${javadoc.destdir}"/>
<javadoc packagenames="org.apache.oro.io,org.apache.oro.text,org.apache.oro.text.regex,org.apache.oro.text.awk,org.apache.oro.text.perl,org.apache.oro.util"
sourcepath="${build.src}"
destdir="${javadoc.destdir}"
overview="${build.src}/org/apache/oro/overview.html"
author="true"
version="true"
windowtitle="${name} ${version} API"
doctitle="${name} ${version} API"
header="<a href='http://jakarta.apache.org/oro/' target=_top><img src='{@docroot}/../images/logoSmall.gif' alt='Jakarta ORO' width=48 height=47 align=center border=0 hspace=1 vspace=1></a>"
bottom="Copyright © ${year} Apache Software Foundation. All Rights Reserved.">
</javadoc>
<replace file="${javadoc.destdir}/overview-frame.html"
token="{@docroot}" value="."/>
<replace dir="${javadoc.destdir}" includes="**/*.html"
token="@version@" value="${version}"/>
</target>
<!-- docs target. Creates project web pages and documentation. -->
<target name="docs" depends="prepare-error,lib,examples"
description="Creates the project web pages and documentation."
if="AnakiaTask.present">
<taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask">
<classpath>
<fileset dir="${jakarta-site2.dir}/lib">
<include name="*.jar"/>
</fileset>
</classpath>
</taskdef>
<anakia basedir="${docs.src}" destdir="${docs.dest}/"
extension=".html" style="./site.vsl"
projectFile="stylesheets/project.xml"
excludes="**/stylesheets/** manual/** empty.xml"
includes="**/*.xml"
lastModifiedCheck="true"
templatePath="${jakarta-site2.dir}/xdocs/stylesheets">
</anakia>
< todir="${docs.dest}/images" filtering="no">
<fileset dir="${docs.src}/images">
<include name="**/*.gif"/>
<include name="**/*.jpeg"/>
<include name="**/*.jpg"/>
</fileset>
</>
<mkdir dir="${docs.dest}/classes"/>
<mkdir dir="${docs.dest}/classes/examples"/>
< todir="${docs.dest}/classes/examples" filtering="no">
<fileset dir="${build.dest}/examples">
<include name="MatcherDemoApplet.class"/>
</fileset>
</>
<mkdir dir="${docs.dest}/classes/org"/>
< todir="${docs.dest}/classes/org" filtering="no">
<fileset dir="${build.dest}/org">
<include name="**/*.class"/>
</fileset>
</>
</target>
<!-- package target -->
<target name="package" depends="jar,javadocs,docs"
description="Creates a distribution directory tree.">
<mkdir dir="${final.dir}"/>
< todir="${final.dir}/src">
<fileset dir="${code.src}"/>
</>
<!-- BEGIN_REMOVE_THIS -->
<!-- Remove this when there's a first draft of the manual. -->
< todir="${final.dir}/docs">
<fileset dir="${docs.dest}">
<exclude name="manual/**"/>
</fileset>
</>
<!-- END_REMOVE_THIS -->
< file="${top.dir}/build.xml" tofile="${final.dir}/build.xml"/>
< file="${top.dir}/build.properties"
tofile="${final.dir}/build.properties"/>
< file="${top.dir}/LICENSE" tofile="${final.dir}/LICENSE"/>
< file="${top.dir}/ISSUES" tofile="${final.dir}/ISSUES"/>
< file="${top.dir}/CHANGES" tofile="${final.dir}/CHANGES"/>
< file="${top.dir}/COMPILE" tofile="${final.dir}/COMPILE"/>
< file="${top.dir}/CONTRIBUTORS"
tofile="${final.dir}/CONTRIBUTORS"/>
< file="${top.dir}/README" tofile="${final.dir}/README"/>
< file="${top.dir}/STYLE" tofile="${final.dir}/STYLE"/>
< file="${top.dir}/TODO" tofile="${final.dir}/TODO"/>
< file="${top.dir}/${final.name}.jar" tofile="${final.dir}/${final.name}.jar"/>
</target>
<!-- package-zip target. Packages the distribution with ZIP -->
<target name="package-zip" depends="package"
description="Packages the distribution as a zip file.">
<zip zipfile="${top.dir}/${final.name}.zip" basedir="${top.dir}/"
includes="**/${final.name}/**" excludes="**/.cvsignore"/>
</target>
<!-- Packages the distribution with TAR-GZIP -->
<target name="package-tgz" depends="package"
description="Packages the distribution as a gzipped tar file.">
<tar tarfile="${top.dir}/${final.name}.tar"
basedir="${top.dir}" excludes="**/**">
<tarfileset dir="${final.dir}/..">
<include name="${final.name}/**"/>
<exclude name="**/.cvsignore"/>
</tarfileset>
</tar>
<gzip zipfile="${top.dir}/${project}-${version}.tar.gz" src="${top.dir}/${project}-${version}.tar"/>
</target>
<!-- Packages the distribution with ZIP and TAG-GZIP -->
<target name="package-all" depends="package-zip, package-tgz">
</target>
<!-- Makes an attempt to clean up a little. -->
<target name="clean"
description="Removes generated artifacts from source tree.">
<delete dir="${build.dest}"/>
<delete dir="${javadoc.destdir}"/>
<delete dir="${final.dir}"/>
<delete file="${top.dir}/${final.name}.jar"/>
<delete file="${top.dir}/${final.name}.tar"/>
<delete file="${top.dir}/${final.name}.tar.gz"/>
<delete file="${top.dir}/${final.name}.zip"/>
<delete>
<fileset dir="${top.dir}" includes="velocity.log*"/>
</delete>
</target>
</project>
build.xml文件的编写可参见ant发行版中的使用文档
你也可以自己编写脚本打包,使用jdk发行版中的jar命令,例如:
#jar cmf myManifestFile myFile.jar *.class
注意还需要自己编写MANIFEST.MF文件配置包属性。具体可以参见javadoc
当然还可以使用集成开发环境提供的打包工具,如JBuilder提供打包工具,但这样程序的移植性不强,建议不要使用,就使用ant比较好。
❺ 如何把java程序打包
///////////////将java程序打包成jar
1.打包成双击可执行的jar文件。
一般把src打包export=>Jar File 即可。想把src附属的资源一起打包,必须使用FatJar => export..=>FatJar.
fatJar这插件打包的时候可把用到的第三方的JAR包也一起打到目标JAR中。
所以下载了一个,下载地址:http://sourceforge.net/project/showfiles.php?group_id=115990&package_id=125924 解压缩后是一个.../plugins/(net...)把plugins下面的(net..)文件夹拷贝到eclipse的plugins下,重新启动
在线安装步骤:
eclipse菜单栏 help >software updates >Search for new features to install>new update site>
填写name 和url
name:任意起个, 就写fat吧
url:这个是fat jar的地址 输入http://kurucz-grafika.de/fatjar
剩下的就点点下一步。
//////////////////////将jar文件转换成exe文件。
推荐工具:exe4j
用exe4j把java打包成exe
http://www.blogjava.net/hadeslee/archive/2007/10/12/152228.html
在我们写程序的时候,有时会有一种需求,那就是希望我们的程序是一个可执行文件,而不是一个
jar文件,其实大部份时候,可执行的jar文件都可以满足要求,但是如果我们的程序是需要保护的,那么打包成jar文件就不太安全了,因为jar文件就是一个解压缩文件,一解压就什么都能看到了,当然也可以选择混淆,但是混淆了以后排错就没那么容易了,因为混淆的时候,把一些类的信息都混淆了。如何既保证代码的安全又容易排错呢?那么打包成exe就是一种很好的办法了,其实我今天介绍这个方法并不是希望大家去打包成exe文件,因为exe文件毕竟不是跨平台的,用了exe的格式就失去了java的初衷了。
exe4j可以打包成各种格式的exe,可以把jar打包进exe,也可以引用一个外部的
jar文件,还可以打包成windows服务的程序,并且可以设置最低jre的版本,还可以设定启动画面,虽然java6.0已经实现了这一点,但是还是没有exe4j生成的启动画面快。
////////////////web项目可以直接Export成为war包进行部署
❻ JAVA程序怎样打包
第一:普通类导出jar包,我说的普通类就是指此类包含main方法,并且没有用到别的jar包。
1.在eclipse中选择你要导出的类或者package,右击,选择Export子选项;
2.在弹出的对话框中,选择java文件---选择JAR file,单击next;
3.在JAR file后面的文本框中选择你要生成的jar包的位置以及名字,注意在Export generated class files and resources和Export java source files and resources前面打上勾,单击next;
4.单击两次next按钮,到达JAR Manifest Specification。注意在最底下的Main class后面的文本框中选择你的jar包的入口类。单击Finish,完成。
你可以在dos环境下,进入你的jar所在的目录,运行 java -jar 名字.jar,检测运行是否正确。
第二、你所要导出的类里边用到了别的jar包。比如说你写的类连接了数据库,用到数据库驱动包oracl.jar.。
1.先把你要导出的类按照上面的步骤导出形成jar包,比如叫test.jar
2.新建一个文件夹main,比如在D盘根目录下;
3.把test.jar和oracl.jar拷贝到main文件下,右击test.jar,解压到当前文件夹。把META-INF\MANIFEST.MF剪切到另外一个地方 (比如是桌面!) ;
4.右击oracl.jar,解压到当前文件夹。
5.在dos环境下,进入到D盘的main文件夹下,执行 jar cvfm new.jar meta-inf/manifest.mf .,不要忘了最后面的点。
6.用压缩工具打开你新生成的new.jar,用你放在桌面的META-INF\MANIFEST.MF覆盖new.jar原有。
你可以在dos环境下,进入你的jar所在的目录,运行 java -jar 名字.jar,检测运行是否正确。
❼ 如何将java源代码打包生成jar
工具:
eclipse
方法:
1、启动eclipse;
❽ 怎么将JAVA打包
jar命令祥解:
用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
选项:
-c 创建新的存档
-t 列出存档内容的列表
-x 展开存档中的命名的(或所有的〕文件
-u 更新已存在的存档
-v 生成详细输出到标准输出上
-f 指定存档文件名
-m 包含来自标明文件的标明信息
-0 只存储方式;未用ZIP压缩格式
-M 不产生所有项的清单(manifest〕文件
-i 为指定的jar文件产生索引信息
-C 改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。
jar cvf classes.jar Foo.class
这样就把Foo.class打包成了classes.jar
不过还是建议楼主取下一个eclipse,然后选择文件(file)->导出(export)->jar,然后一步步按next,最后选择你得Main方法所在的类,就行了。。
这样方便些。
❾ java怎么打包成jar
^^java教程^^《制作可执行JAR》本文阐述了如何把一个不可执行的 JAVAArchive(JAR)文件变成可执行,而不用直接操作manifest文件。你会学到写出短小的一个程序,通过运行java-jar命令或在像windows一样的操作系统里面用双击鼠标运行任何JAR文件。
你可以很容易地把应用程序的一整套class文件和资源文件打包到一个JAR中。事实上这就是jar文件存在的一个目的。另外一个目的就是让用户能很容易地执行被打包到jar文件里面的应用程序。那么为什么jar文件仅仅作为文件在整个java里面占据了次要的地位,而本地执行则被忽视?
要执行一个jar文件,你可以使用java命令的-jar选项。举一个例子来说,假如你有个名叫myjar.jar的文件。这个jar是可以运行的,你可以运行它:java-jarmyjar.jar.另外一个办法就是,当JavaRuntimeEnvironment(JRE)已经被安装到一个像windows的操作系统上,将jar文件与JVM关联(关联 java.exe跟jar文件)在一起你就可以通过双击jar来运行这个应用程序。当然,jar文件必须是可执行的。
现在的问题是:如何做一个可以执行的jar?
manifest文件以及Main-class入口
在大多数jar中,都在一个叫META-INF的目录里面保存了一个叫MANIFEST.MF的文件。那个文件里面,
包含了一个特殊表项名字叫Main-Class,告诉java-jar命令应该执行哪个class.
问题是你必须为manifest文件手工加入适当表项,而且必须在一定的位置和用一定的格式。不幸的是,不是每个人都喜欢打开写字板编辑配置文件。
让API帮你完成任务
自从java1.2发布以来,一个叫java.uil.jar包的出现,让你能够方便处理jar文件。(注意:该包基于java.util.zip)特别地,jar包让你通过Mainfest类,可以容易操作那些manifest文件.
就让我们用这个API写一个程序吧。首先,这个程序必须知道三样东西:
1。我们要使之可运行的jar文件。
2。运行jar的主类(这个类必须包含在jar中)。
3。输出新jar文件的文件名,因为我们不能简单地覆盖原来的文件。
编写程序
上面列表的三点要求将组成我们的程序的参数。现在,让我们为这个程序选择一个适当的名字。
MakeJarRunnable听起来觉得怎样?
为main方法检查参数
假设我们的main方法入口点是一个标准的main(String[])方法。我们应该这样检查程序的参数:
if(args.length!=3){
System.out.println("Usage:MakeJarRunnable" "<jarfile><Main-Class><output>");
System.exit(0);
}
请注意参数列表是如何描述的,因为这在以下代码中是很重要的。参数的次序和内容不是固定的;
然而,如果你要改变他们的话,要记住响应修改其他代码。
访问jar和jar的manifest文件
第一,我们必须创建一些了解jar和manifest的对象:
//CreatetheJarInputStreamobject,andgetitsmanifest
JarInputStreamjarIn=newJarInputStream(newFileInputStream(args[0]));
Manifestmanifest=jarIn.getManifest();
if(manifest==null){
//
manifest=newManifest();
}
设置Main-Class属性
我们把Main-Class入口放到manifest文件的main属性部分。一旦从manifest对象获得这个属性,就可以设置需要的 mainclass。然而,如果main-Class属性已经存在原来的jar当中又如何呢?这里我们只是简单地输出一个警告然后退出。我们能加入一个命令行参数告诉程序使用新的值,而代替了旧的那个:
Attributesa=manifest.getMainAttributes();
StringoldMainClass=a.putValue("Main-Class",args[1]);
//Ifanoldvalueexists,telltheuserandexit
if(oldMainClass!=null){
System.out.println("Warning:oldMain-Classvalueis:"
oldMainClass);
System.exit(1);
}
输出新的JAR
我们需要创建一个新的JAR文件,所以我们必须使用JarOutputStream类。注意:
我们必须确定我们不用跟输入文件相同的名字作为输出文件的名字。还有一个方案就是,程序应该考虑到一种情况,就是两个jar文件都是相同的,促使用户覆盖原来的文件,如果他愿意这么做的话。然而,我在保留了这一点,作为读者的一个练习。从如下代码开始:
System.out.println("Writingto" args[2] "...");
JarOutputStreamjarOut=newJarOutputStream(newFileOutputStream(args[2]),manifest);
我们必须从输入JAR写每个表项到输出的JAR,所以迭代每个表项:
//
byte[]buf=newbyte[4096];
//Iteratetheentries
JarEntryentry;
while((entry=jarIn.getNextJarEntry())!=null){
//
if("META-INF/MANIFEST.MF".equals(entry.getName()))continue;
//WritetheentrytotheoutputJAR
jarOut.putNextEntry(entry);
intread;
while((read=jarIn.read(buf))!=-1){
jarOut.write(buf,0,read);
}
jarOut.closeEntry();
}
//Flushandcloseallthestreams
jarOut.flush();
jarOut.close();
jarIn.close();
完成程序
当然,我们必须把这些代码放到一个类的main方法里面,并且需要一大堆import代码。完整程序:
http://www.javaworld.com/javaworld/javatips/javatip127/MakeJarRunnable.zip
程序使用例子
让我们把这个程序应用到一个例子里面来。假设你有一个应用程序,该程序的入口点是一个叫HelloRunnableWorld的类,再假设你已经创建了一个jar叫myjar.jar,包含了整个程序。运行MakeJarRunnable:
javaMakeJarRunnablemyjar.jarHelloRunnableWorldmyjar_r.jar
正如前面提到的,注意一下我的参数顺序。如果你忘记了顺序,没有参数运行一下程序,它会响应出现一个用法提示信息。
尝试对myjar.jar运行java-jar命令。然后对myjar_r.jar。注意区别不同!好了,你完成了这一切了,浏览一下每个jar的manifest文件(META-INF/MANIFEST.MF)
❿ 如何把java程序打包成exe
工具/原料
jar转exe转换器
java程序
方法步骤
1、下载jar转exe转换器,双击运行