您的位置:首页 > 其它

使用intellij idea 15.0.6工具创建可执行 JAR

2018-01-11 10:59 766 查看
[b]第一步:选中项目,点击 File ->  Project structure  ->  artifacts ,然后在弹出的面板的中间点击绿色+号按钮,选择 JAR  -> from modules with dependencies。至此,弹出下图所示界面:[/b]



第二步:如上图所示,填写Main class的值为带有main方法的那个启动类的完整类名。

                 选中:copy to the output directory and link via manifest

             设置Directory for META-INF/MANIFEST.MS:的值为:项目根路径/src/main/resources, 注意,对于非maven项目,需要自己在根路径下新建main/resources目录

               然后点击OK,最后进入下图所示的界面:



第三步:进入上图所示界面后:

a 上图所示界面中,右侧面板最上方的Name输入框中展示的就是最终打出来的jar包的名字,上图所示是mapredProject.jar,可以进行更改。

b. 在Output Layout面板中,找到与Name输入框中同名的jar包。然后选中该jar包, 注意需要选中该jar包,然后点击Output Layout面板下的绿色+号按钮,选择Module
Output,然后在弹出的Choose Module对话框中选择与项目名同名的module,然后点击ok。


c. b步骤中鼠标选中的mapredProject.jar此时便可以展开,展开后会看到‘mapredProject’ compile output文件夹和META-INF文件夹,如下图所示:



第四步:此时,选中mapredProject.jar包,右键“Create Directory”创建一个名字为libs的目录,注意,该目录名字可以任意,不过一般命名为lib或libs,该目录用于存放依赖的其他jar包。创建完libs目录以后,选中libs目录,然后点击Output
Layout面板下的绿色+号按钮,选择File,此时弹出文件选择对话框,然后找到项目依赖的jar包,并添加到libs目录下即可。


第五步:libs目录下添加完jar包以后,再次选中Output Layout面板下的mapredProject.jar。如下图所示:此时Manifest File输入框中已经有值(之前步骤已经设置)。Main
class输入框中也有值(也即com.mapred.core.WordCount)。点击class path右侧按钮,在弹出的Edit Classpath对话框中,在每一个jar包的前面补充libs\字符串完善依赖的jar路径,最后一路点击OK或者确定即可。




第六步:鼠标选中项目,点击build -> build artifacts  -> mapredProject:jar -> build 即可。 最后打出的jar包的路径如下图所示:



第七步:在输出路径中找到名字为mapredProject.jar的jar包即可,该jar包会和该项目依赖的其他的jar包输出到同一个目录下,但事实上mapredProject.jar包里面的libs目录已经包含了所有依赖,输出的mapredProject.jar已经是一个完整的可执行jar包了



第七步:解压mapredProject.jar包,jar包内的层级结构如下图所示:



第八步:进入META-INF文件夹,打开MANIFEST.MF文件,内容如下,可见classpath和main class已经正确写入:

Manifest-Version: 1.0
Class-Path: xz-1.0.jar asm-3.2.jar guice-3.0.jar avro-1.7.4.jar gson-2
.2.4.jar junit-4.11.jar jsch-0.1.42.jar jsp-api-2.1.jar xmlenc-0.52.j
ar guava-11.0.2.jar jets3t-0.9.0.jar jettison-1.1.jar jetty-6.1.26.ja
r jsr305-1.3.9.jar log4j-1.2.17.jar paranamer-2.3.jar activation-1.1.
jar commons-el-1.0.jar commons-io-2.4.jar httpcore-4.2.5.jar javax.in
ject-1.jar jaxb-api-2.2.2.jar stax-api-1.0-2.jar aopalliance-1.0.jar
commons-cli-1.2.jar commons-net-3.1.jar jersey-core-1.9.jar jersey-js
on-1.9.jar servlet-api-2.5.jar slf4j-api-1.7.5.jar zookeeper-3.4.6.ja
r commons-lang-2.6.jar hadoop-nfs-2.6.5.jar httpclient-4.2.5.jar jers
ey-guice-1.9.jar commons-codec-1.4.jar guice-servlet-3.0.jar hadoop-a
uth-2.6.5.jar hamcrest-core-1.3.jar htrace-core-3.0.4.jar jackson-xc-
1.9.13.jar jaxb-impl-2.2.3-1.jar jersey-server-1.9.jar jetty-util-6.1
.26.jar mockito-all-1.8.5.jar netty-3.6.2.Final.jar api-util-1.0.0-M2
0.jar leveldbjni-all-1.8.jar commons-math3-3.1.1.jar hadoop-common-2.
6.5.jar java-xmlbuilder-0.4.jar protobuf-java-2.5.0.jar slf4j-log4j12
-1.7.5.jar snappy-java-1.0.4.1.jar commons-digester-1.8.jar curator-c
lient-2.6.0.jar jackson-jaxrs-1.9.13.jar commons-logging-1.1.3.jar cu
rator-recipes-2.6.0.jar jasper-runtime-5.5.23.jar api-asn1-api-1.0.0-
M20.jar commons-compress-1.4.1.jar commons-httpclient-3.1.jar jasper-
compiler-5.5.23.jar apacheds-i18n-2.0.0-M15.jar commons-beanutils-1.7
.0.jar curator-framework-2.6.0.jar jackson-core-asl-1.9.13.jar hadoop
-annotations-2.6.5.jar commons-collections-3.2.2.jar commons-configur
ation-1.6.jar hadoop-common-2.6.5-tests.jar jackson-mapper-asl-1.9.13
.jar commons-beanutils-core-1.8.0.jar hadoop-mapreduce-examples-2.6.5
.jar hadoop-mapreduce-client-hs-2.6.5.jar apacheds-kerberos-codec-2.0
.0-M15.jar hadoop-mapreduce-client-app-2.6.5.jar hadoop-mapreduce-cli
ent-core-2.6.5.jar hadoop-mapreduce-client-common-2.6.5.jar hadoop-ma
preduce-client-shuffle-2.6.5.jar hadoop-mapreduce-client-jobclient-2.
6.5.jar hadoop-mapreduce-client-hs-plugins-2.6.5.jar hadoop-mapreduce
-client-jobclient-2.6.5-tests.jar
Main-Class: com.mapred.core.WordCount

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  idea 可执行jar包