「java工程打包」java工程打包成可运行的jar

博主:adminadmin 2023-03-20 02:10:10 386

本篇文章给大家谈谈java工程打包,以及java工程打包成可运行的jar对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Eclipse如何将Java项目打包成jar包?

如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自定义配置文件MANIFEST.MF ,例如:\x0d\x0aManifest-Version: 1.0\x0d\x0aClass-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\x0d\x0aMain-Class: src.YourMainClassName\x0d\x0a其中的Class-Path就指定了外来jar包的位置。请注意假设我们的项目打包后为project.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib文件夹,并将相关的jar包放在里面。否则将会出现Exception in thread "main" java.lang.NoClassDefFoundError的错误。\x0d\x0a如果想在所导出的jar包中包含第三方jar包,可以如下操作:\x0d\x0a1.在工程目录下放入第三方jar包\x0d\x0a2.Class-Path: name.jar\x0d\x0a上诉两个步骤就可以成功导出引用了jar包的java工程,并将第三方jar包放在导出的工程中\x0d\x0a注意:如果在Class-Path 中引入比较多的jar包,不要写成一行,不然会报:java.io.IOException : line too long ,需要分多行写,第二行以及下面的第三行、第四行写的时候需要在前面空两格(敲两下空格键)即可\x0d\x0a最后介绍一下使用Eclipse制作jar包的过程吧:\x0d\x0a1. 首先在Eclipse中打开项目, 右键点击项目,选择“Export”;\x0d\x0a2. 选择Java/JAR file,Next;\x0d\x0a3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间;\x0d\x0a这里有几个选项:\x0d\x0a* Export generated class files and resources 表示只导出生成的.class文件和其他资源文件\x0d\x0a* Export all output folders for checked projects 表示导出选中项目的所有文件夹\x0d\x0a* Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了\x0d\x0a* Export refactorings for checked projects 把一些重构的信息文件也包含进去\x0d\x0a在Select the export destination中选择导出的jar的路径,Next\x0d\x0a4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class文件。一般不用理他,Next\x0d\x0a5. 下一个页面里可以对项目做一些配置。\x0d\x0a* Generate the manifest file是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。\x0d\x0a* Use existing mainfest from workspace。这是可以选择我们自定义的.MF文件,格式如上所写。\x0d\x0a* Seal content。要封装整个jar或者指定的包packet\x0d\x0a* Main class。这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。\x0d\x0a最后Finish 完成

如何把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包

如何用jar命令对java工程进行打包

包根目录下面的文件:

Java代码 复制代码

jar cvf filename.jar a.class b.class

Java代码 收藏代码

span style="color: #0000ff;"jar cvf filename.jar a.class b.class/span

--------------------------------------------------------------------------------------------------------------------------------------------

打包带package的文件:

Java代码 复制代码

jar cvf filename.jar foldername

Java代码 收藏代码

span style="color: #0000ff;"jar cvf filename.jar foldername/span

或者

Java代码 复制代码

jar cvf filename.jar foldername\*

Java代码 收藏代码

span style="color: #0000ff;"jar cvf filename.jar foldername\*/span

--------------------------------------------------------------------------------------------------------------------------------------------

打包可执行jar包:

先配置manifest.mf文件,内容如下

Java代码 复制代码

Main-Class: com.TestBean

Class-Path: lib\classes12.jar

Java代码 收藏代码

span style="color: #0000ff;"Main-Class: com.TestBean

Class-Path: lib\classes12.jar/span

Main-Class: com.TestBean

指定入口函数,说明默认执行com.TestBean的main函数。

Class-Path: lib\classes12.jar

配置依赖jar包

打包方法:

Java代码 复制代码

jar cvfm filename.jar manifest.mf *.class lib\classes12.jar

Java代码 收藏代码

span style="color: #0000ff;"jar cvfm filename.jar manifest.mf *.class lib\classes12.jar/span

执行方法:

Java代码 复制代码

java -jar filename.jar

Java代码 收藏代码

span style="color: #0000ff;"java -jar filename.jar/span

--------------------------------------------------------------------------------------------------------------------------------------------

eclipse下面有个jar打包的插件(附件是插件的下载)

eclipse中右击项目选择"Build Fat Jar"根据提示就可以打包jar

可以选择Main-Class,点击"Browse"选择jar的执行入口。

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项目写完后怎么怎么打包?

Java项目的打包成jar文件:

eclipse 中选择要发布的工程右键单击,选择export

然后在列表中选择jar(不一定马上看到,但是可以找到的)

确定后下一步,选择你要发布的类,反正你要用的到的类全部选择进去包括图片或者音乐(音乐和图片的引用方式有关系,另当别论),然后取个名称,选择路径

再下一步两次,然后选择main-class,就是你运行程序时运行的哪个类,选择后单击finish,jar文件应该打包成功了,双击可以直接运行。

java如何打包

建议使用ANT打包工具,下载地址:

此工具用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"/

copy todir="${build.dest}/META-INF"

fileset dir="${top.dir}"

include name="LICENSE"/

/fileset

/copy

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='' target=_topimg 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

copy todir="${docs.dest}/images" filtering="no"

fileset dir="${docs.src}/images"

include name="**/*.gif"/

include name="**/*.jpeg"/

include name="**/*.jpg"/

/fileset

/copy

mkdir dir="${docs.dest}/classes"/

mkdir dir="${docs.dest}/classes/examples"/

copy todir="${docs.dest}/classes/examples" filtering="no"

fileset dir="${build.dest}/examples"

include name="MatcherDemoApplet.class"/

/fileset

/copy

mkdir dir="${docs.dest}/classes/org"/

copy todir="${docs.dest}/classes/org" filtering="no"

fileset dir="${build.dest}/org"

include name="**/*.class"/

/fileset

/copy

/target

!-- package target --

target name="package" depends="jar,javadocs,docs"

description="Creates a distribution directory tree."

mkdir dir="${final.dir}"/

copy todir="${final.dir}/src"

fileset dir="${code.src}"/

/copy

!-- BEGIN_REMOVE_THIS --

!-- Remove this when there's a first draft of the manual. --

copy todir="${final.dir}/docs"

fileset dir="${docs.dest}"

exclude name="manual/**"/

/fileset

/copy

!-- END_REMOVE_THIS --

copy file="${top.dir}/build.xml" tofile="${final.dir}/build.xml"/

copy file="${top.dir}/build.properties"

tofile="${final.dir}/build.properties"/

copy file="${top.dir}/LICENSE" tofile="${final.dir}/LICENSE"/

copy file="${top.dir}/ISSUES" tofile="${final.dir}/ISSUES"/

copy file="${top.dir}/CHANGES" tofile="${final.dir}/CHANGES"/

copy file="${top.dir}/COMPILE" tofile="${final.dir}/COMPILE"/

copy file="${top.dir}/CONTRIBUTORS"

tofile="${final.dir}/CONTRIBUTORS"/

copy file="${top.dir}/README" tofile="${final.dir}/README"/

copy file="${top.dir}/STYLE" tofile="${final.dir}/STYLE"/

copy file="${top.dir}/TODO" tofile="${final.dir}/TODO"/

copy 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的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。