java 打包过程及如何使用第三方jar包
- 格式:docx
- 大小:230.17 KB
- 文档页数:8
【Java】class.jar和sources.jar及javadoc.jar三种jar包⼀、普及jar包知识 例如(举例⼦解释)类⽂件(.class) test-java-1.0-SNAPSHOT.jar⽂档包(API) test-java-1.0-SNAPSHOT-javadoc.jar资源包(code) test-java-1.0-SNAPSHOT-sources.jar⼆、使⽤⽅法1.类⽂件(.class) test-java-1.0-SNAPSHOT.jar 反编译,最暴⼒直接的⽅法,将jar包拖进IDEA⾥查看2.⽂档包(API) test-java-1.0-SNAPSHOT-javadoc.jar 解压该⽂件,打开index.html查看3.资源包 test-java-1.0-SNAPSHOT-sources.jar 拖进IDEA直接查看⼆、⽣成⽅法1.类⽂件(.class) test-java-1.0-SNAPSHOT.jar 直接使⽤maven打包⽣成即可2.⽂档包(API) test-java-1.0-SNAPSHOT-javadoc.jar 使⽤ maven-javadoc-plugin 插件⽣成javadoc.jar3.资源包 test-java-1.0-SNAPSHOT-sources.jar 使⽤ maven-source-plugin 插件⽣成sources.jar完整pom⽂件如下:1<?xml version="1.0" encoding="UTF-8"?>2<project xmlns="/POM/4.0.0"3 xmlns:xsi="/2001/XMLSchema-instance"4 xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">5<modelVersion>4.0.0</modelVersion>67<groupId>com.test</groupId>8<artifactId>test-java</artifactId>9<version>1.0-SNAPSHOT</version>10<dependencies>11<dependency>12<groupId>junit</groupId>13<artifactId>junit</artifactId>14<version>4.12</version>15<scope>compile</scope>16</dependency>17</dependencies>1819<build>2021<plugins>22<plugin>23<!-- Maven 编译插件24指定maven编译的jdk版本,如果不指定,25 maven3默认⽤jdk 1.5 maven2默认⽤jdk1.3 -->26<groupId>org.apache.maven.plugins</groupId>27<artifactId>maven-compiler-plugin</artifactId>28<version>3.8.1</version>29<configuration>30<!-- ⼀般⽽⾔,target与source是保持⼀致的,但是,有时候为了让程序能在其他版本的jdk中运⾏(对于低版本⽬标jdk,源代码中不能使⽤低版本jdk中不⽀持的语法),会存在target不同于source的情况 --> 31<source>1.8</source><!-- 源代码使⽤的JDK版本 -->32<target>1.8</target><!-- 需要⽣成的⽬标class⽂件的编译版本 -->33<encoding>UTF-8</encoding><!-- 字符集编码 -->34<verbose>true</verbose>35<showWarnings>true</showWarnings>36<fork>true</fork><!-- 要使compilerVersion标签⽣效,还需要将fork设为true,⽤于明确表⽰编译版本配置的可⽤ -->37<executable><!-- path-to-javac --></executable><!-- 使⽤指定的javac命令,例如:<executable>${JAVA_1_4_HOME}/bin/javac</executable> -->38<compilerVersion>1.3</compilerVersion><!-- 指定插件将使⽤的编译器的版本 -->39<meminitial>128m</meminitial><!-- 编译器使⽤的初始内存 -->40<maxmem>512m</maxmem><!-- 编译器使⽤的最⼤内存 -->41<!-- <compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument><!– 这个选项⽤来传递编译器⾃⾝不包含但是却⽀持的参数选项 –>-->42</configuration>43</plugin>4445<!-- ⽣成javadoc⽂档包的插件 -->46<plugin>47<groupId>org.apache.maven.plugins</groupId>48<artifactId>maven-javadoc-plugin</artifactId>49<version>3.2.0</version>50<executions>51<execution>52<id>attach-javadocs</id>53<goals>54<goal>jar</goal>55</goals>56</execution>57</executions>58</plugin>5960<!-- ⽣成sources源码包的插件 -->61<plugin>62<groupId>org.apache.maven.plugins</groupId>63<artifactId>maven-source-plugin</artifactId>64<version>3.2.1</version>65<configuration>66<attach>true</attach>67</configuration>68<executions>69<execution>70<!-- 在package阶段之后会执⾏源代码打包 -->71<phase>package</phase>72<goals>73<goal>jar-no-fork</goal>74</goals>75</execution>76</executions>77</plugin>78</plugins>79</build>8081</project>配置好插件后,使⽤maven package命令既能在target⽬录中查看到三个jar包 命令:mvn package如果要把三种jar包安装到本地仓库 命令:mvn install如果要把三种jar包发布到远程仓库 命令:mvn deploy。
java打jar包,引⽤其他.jar⽂件⼤家都知道⼀个java应⽤项⽬可以打包成⼀个jar,当然你必须指定⼀个拥有main函数的main class作为你这个jar包的程序⼊⼝。
具体的⽅法是修改jar包内⽬录META-INF下的MANIFEST.MF⽂件。
⽐如有个叫做test.jar的jar包,⾥⾯有⼀个拥有main函数的main class:test.someClassName我们就只要在MANIFEST.MF⾥⾯添加如下⼀句话:Main-Class: test.someClassName然后我们可以在控制台⾥输⼊java -jar test.jar即可以运⾏这个jar。
但是我们这个项⽬需要引⽤其他第三⽅的jar包,在eclipse⾥⾯以项⽬jar包的形式引⽤了这个叫做some.jar的包,当时放在项⽬的lib⼦⽬录下,最后项⽬打包时把这个some.jar也打进来了,但是⽤java -jar执⾏这个test.jar的时候报找不到Class异常,原因就是jar引⽤不到放在⾃⼰内部的jar包。
那怎么办?运⾏时将其加⼊classpath的⽅式⾏不⾏?就是在运⾏jar的同时加⼊classpath参数:java -classpath some.jar -jar test.jar这种⽅式应该能解决问题吧,试⼀下,还是不⾏。
查了下资料,原来使⽤java -jar 命令运⾏jar包时classpath参数将会失效,所以,这种⽅式也不⾏。
那该怎么引⽤其他的jar包呢,答案还是在这个⽬录META-INF下的MANIFEST.MF⽂件中。
jar包引⽤其他jar包的信息必须在这个⽂件中声明。
我们在MANIFEST.MF中添加如下代码:Class-Path: lib/some.jarlib是和test.jar同⽬录的⼀个⼦⽬录,test.jar要引⽤的some.jar包就在这⾥⾯。
然后测试运⾏,⼀切正常!如果有多个jar包需要引⽤的情况:Class-Path: lib/some.jar lib/some2.jar每个单独的jar⽤空格隔开就可以了。
ECLIPSE将引用了第三方JAR包的JAVA项目打包成JAR文件的两种方法在Eclipse中,我们可以使用两种方法将引用了第三方JAR包的Java项目打包成JAR文件。
下面将详细介绍这两种方法。
方法一:使用Eclipse自带的导出功能1. 在Eclipse中,右键单击项目,选择"Export"。
2. 在弹出的对话框中,选择"Java"下的"JAR file",然后点击"Next"。
3. 在"JAR File Specification"页面上,选择要导出的项目以及要导出的资源;在"Export destination"中,指定导出的JAR文件的保存路径和文件名。
4. 在"JAR Packaging Options"页面上,选择"Export generated class files and resources",确保要导出的类文件和资源都被包含在JAR文件中。
5. 在"Select the export destination"页面上,选择"Package required libraries into generated JAR",这将会将所需的第三方JAR包也包含在生成的JAR文件中。
6. 点击"Finish"完成导出。
这种方法的优点是简单快捷,只需要几个简单的步骤就可以完成打包。
但是缺点是生成的JAR文件会将第三方JAR包也放在同一个目录下,可能导致文件夹混乱。
方法二:使用Apache Maven插件打包1. 首先,确保你的项目中存在pom.xml文件,它描述了项目的依赖关系和构建配置。
2. 打开Eclipse的"Terminal"窗口,或者使用其他的命令行工具。
java 第三方包调用的方法在Java中,调用第三方包的方法通常涉及以下步骤:1. 导入包:首先,确保你的项目中已经包含了需要的第三方包。
这可以通过将相应的JAR 文件包含在你的项目中,或者通过构建工具(如Maven、Gradle)来添加依赖项。
2. 创建对象:通常,你需要实例化第三方包中的类,以便调用其方法。
这可以通过使用`new` 关键字来实现。
3. 调用方法:一旦你有了第三方包的对象,你就可以调用其方法。
方法的调用可能需要提供参数,这取决于方法的签名。
以下是一个简单的示例,演示如何调用第三方包的方法:```java// 导入第三方包中的类import com.example.ThirdPartyClass;public class MyApplication {public static void main(String[] args) {// 创建第三方包中的类的对象ThirdPartyClass thirdPartyObject = new ThirdPartyClass();// 调用第三方包中的方法thirdPartyObject.someMethod();// 如果方法接受参数,例如一个字符串参数String result = thirdPartyObject.methodWithParameter("Hello, World!");System.out.println(result);}}```请注意,上述代码中的`com.example.ThirdPartyClass` 是一个虚构的示例。
你需要替换它为你实际使用的第三方包中的类。
确保查阅第三方包的文档以了解如何正确使用它的类和方法。
文档通常提供了详细的信息,包括类、方法的说明以及示例用法。
Java打包成jar文件,以及将jar文件导出为exe文件方法汇总(图形说明)一、Java打包成jar文件方法一:用Eclipse导出jar文件注:我用的是Eclipse,但是MyEclipse也大同小异首先右键点击所要打包的工程,选择Export选项选择JAR file,点击Next在要打包的工程前打钩,如上图红色所示;选择导出文件的目的地址,如图蓝色所示,包名随意,没有特定的要求;点击Next点击Browse选择到主类所在的上一个文件夹,别忘了填写File name(随意起名即可),点击OK;点击第四幅图的下面的Browse按钮,选择主类的名字,如下图所示点击OK,即可完成打包。
运行jar文件,可将jar文件与一个批处理文件放到一个文件夹中;其中批处理文件的内容为:java -jar neme.jar(其中name为jar包的名字)批处理文件格式为.bat;双击批处理文件即可运行程序。
PS:将java工程文件打包成.exe文件我用的是一个exe4j的免费软件第一步:默认即可,直接点击Next第二步:如果有已经制作好的jar文件,选择“JAR in EXE”mode,然后点击Next第三步:红色划线框内填写工程名字,随意即可;蓝色划线框内填写打包后的exe文件输出目录第四步:如果需要导出为exe文件的是图形界面,则选择GUI application;如果要导出为exe文件的是控制台的,则选择console application;Executable name写你将要生成的exe文件的名字,Icon File可以选择生成文件的图标第五步:点击绿色的加号,出现如下所示对话框,选择archive,然后选择已经打包好的jar文件选择主类完成后如图所示第六步:最小版本填1.3,最大版本填1.6;如果只需导出的exe在装有JRE的机子上可以运行,那么一路Next下去,最后点击Finish即可;如果想要在没有装JRE的机器上运行,那么需要继续,点击Advanced Options,选择searchsequence选择Directory,点击浏览按钮,选择JRE所在的根目录,将JRE复制过来,如下图所示选择Preferred VM,选择Client hotspot VM第7、8步是一些基本配置,默认即可,第9步编译,第10步你就可以看到以下效果了好了,大功告成了~方法二:用命令生成jar文件首先编写一个清单文件,名为:MANIFEST.MFT,其代码如下:Manifest-Version: 1.0//该属性是创建可执行jar包必需的,指定的Main-Class为全路径类名(且该类必需有main方法)Main-Class:填写你的主类Created-By: 1.5.0_02 (Sun Microsystems Inc.)然后,使用如下命令生成jar文件:jar cfm 填写你要生成jar的名字.jar MANIFEST.MFT *.class其中,c表示要生成一个新的jar文件;f表示生成jar的名字;m表示清单文件的名字二、ar文件导出为可执行文件,即exe文件方法一:用j2ewiz,使用方法如下:操作步骤:1、双击j2ewiz.exe,出现软件注册窗口,点击下一步。
Java在制作jar包时引⽤第三⽅jar包的⽅法我⽤的是Eclipse打包,但在CMD窗⼝执⾏的时候报“ActiveMQ.jar中没有主清单属性”错误。
在⽹上搜了下,这个与MANIFEST.MF⽂件有关,该⽂件没有定义MAIN⽅法所在类的路径,利⽤好压打开jar包,果然如此。
⾥⾯只有⼀⾏Manifest-Version: 1.0需添加Main-Class。
在本例中,添加如下:Main-Class: com.luoluo.TestUse.activemq.ActiveMQStateMain上⾯,有⼏点需要注意:1. Main-Class:和com.luoluo.TestUse.activemq.ActiveMQStateMain中间必须有个空格,切记。
2. com.luoluo.TestUse.activemq是该类的包名,ActiveMQStateMain是main⽅法所在的类名,注意:后⾯不⽤加上.java或.class。
3. 如果不引⽤第三⽅包,需回车让光标到下⼀⾏。
不然还是会报“ActiveMQ.jar中没有主清单属性”错误。
如果引⽤了第三⽅包,在Class-Path后⾯回车,总之,在指定了相关的参数后,均需要回车让光标到下⼀⾏。
上⾯的只是定义了主类,如果引⽤了第三⽅包,则会报以下错误:Exception in thread "main" ng.NoClassDefFoundError: org/apache/activemq/broker/jmx/BrokerViewMBean这时,需在MANIFEST.MF⽂件中定义Class-Path。
在本例中,添加如下:Class-Path: lib/activemq-all-5.12.1.jar注意:Class-Path和lib/activemq-all-5.12.1.jar之间也同样需要个空格。
同时,在jar包的同层⽬录下,新建⼀个lib⽂件夹,将activemq-all-5.12.1.jar copy到⾥⾯去。
idea打包java可执⾏jar包的实现步骤1,在项⽬上⿏标右键 --> Open Module Settings
2, Artifacts --> + --> JAR --> From modules with dependencies...
3, Main Class是你这个项⽬(脚本)的主⽅法,就是要运⾏的类,选⼀个
4,如下图,设置 META-INF/MANIFEST.MF
切记,不能⽤默认的(起码我⽤默认的是不成功的)
6,选中你这个项⽬的根⽬录,⼀定要放在根⽬录下
7,设置完是这样⼦的,关于 JAR files from libraries的两个选项:
选中第⼀个的话,打完包后是⼀个jar包
选中第⼆个的话,打完包后是⼀个jar包,外带你项⽬所⽤的jar包,个⼈推荐第⼆个
8,设置完后就可以点OK了
9,这个页⾯, Build on make打上勾,其他的不⼀样也没事
10,最后⼀步, Build Artifacts... --> XXX.jar --> Build
11,复制这⾥的路径去找jar包就⾏
到此这篇关于idea打包java可执⾏jar包的实现步骤的⽂章就介绍到这了,更多相关java可执⾏jar内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
在Eclipse中将Java项目打包为jar方法一:如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自己自定义配置文件MANIFEST.MF ,内容示例如下:Manifest-Version: 1.0Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jarlib\log4j-1.2.13.jar lib\mysql-connector-java-3.1.13-bin.jarMain-Class: src.YourMainClassName其中的Class-Paht就指定了外来jar包的位置。
请注意假设我们的项目打包后为project.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib文件夹,并将相关的jar包放在里面。
否则将会出现Exception in thread "main" ng.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的路径,Next4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class 文件。
Java项目中导入第三方Jar文件
演示:以导入数据库驱动Jar为示例
1、首先,在项目所在文件夹中随意创建一个子文件夹,然后将数据库驱动Jar文件放入到
该文件夹下,如下图所示:
可以看到新创建的文件夹了(本示例中文件夹名称为:lib),具体操作如下图所示:
当单击“Refresh”按钮后,可以在项目中看到自己创建的文件夹(即:lib),如下图所示:
3、 最后,然后在MyEclipse 中找到自己的项目,然后在项目上右键,弹出如下菜单:
弹出如下窗口:
,表示现在我们在项目中还无法使用该数据库
单击“Add JARs …”按钮,如上图所示,出现如下窗口:
然后单击“OK ”按钮,即可。
通过上述方式就可以将任何第三方的Jar 文件(如:数据库驱动Jar 文件)导入到当前项目中,导入后项目变为如下结构,如下图所示:
的图标变成:,才表明将来在程
以上就是如何在MyEclipse中导入第三方Jar文件的方法,请同学们自己试一试!。
Java打包jar这篇内容部分来自官网及维基的翻译,大部分的代码都亲自做了测试,如果遇到问题可以联系我,高手们可以大略读一下初级篇或直接略过读高级篇。
学过c++的同学都知道,编译过后的程序是可以直接点击运行的,.exe文件是windows里的可执行文件,那么我们在java中如何产生这种可执行文件呢?解决这个问题,我们要知道java程序的打包发布。
Java程序的打包发布也就是打包成jar压缩包的过程,jar压缩包是可以直接点击运行的,类似.exe文件,所以我们要做的就是把java源文件编译后,打包成jar 文件,那么我们的用户就可以直接双击运行了。
是不是很爽。
其实,我们还可以作很多,比如我们也可以用工具把java程序做成.exe文件,我们也可以做成linux下可以运行的程序。
下面我们详细介绍步骤,并说明每个步骤的原因,知其然也得知其所以然。
一、Java程序的打包基本上分两部分,一部分是一般程序的打包,另一部分就是特殊的插件打包了,我们只注重一般程序的打包,插件的打包方法我们不研究,毕竟没几个人搞插件开发。
二、jar运行的时候,它在怎么工作呢?了解这个是很重要的,知道这个以后,你就明白为什么我们需要这个文件、需要哪个文件,所以要仔细看这部分。
简单的说:双击jar文件->jar会读取manifest.mf(或者以mf为后缀的)这个打包清单->清单里有主类名和运行需要的库->根据这些信息jar就可以开始运行里面的java程序了->当有和系统进行交互的时候(比如swt需要系统的界面窗口信息,如果没有和系统进行信息交互则不必包含系统的库文件,其实那个时候你也没有需要的库文件),我们就要读取系统的库文件,调用系统的东西,所以我们要把系统的库函数连接文件(***.dll)包括进来。
这些就是jar的工作内部过程,那么下面我们就满足它的要求,创建它。
三、立即开工1、第一步,创建好你的swt程序,我们以这个为例,我们不避讳任何为题,因为这个包含的比较全面,基本问题都遇到了,所以你要先创建一个简单的swt程序,例如一个简单的对话框Swttest.java。
Java 打可执行jar包及如何加入引用包的方法1.选择项目选择Export
2.选择java->JAR file
3.选择next
4.选择next
5.下一步next
6.然后点击Finish结束
7.引用包的使用在test.jar的目录中建lib(文件夹名字随意命名).把用到的第三方jar包
放进去。
目录如下
打开生成的test.jar用解压缩的方式打开
把META-INF下的MANIFEST.MF文件拉出来。
添加用到的引用包
Class-Path:后面一定要有一个空格。
多个包后面以至少一个空格分开。
后面也一定要有两个空行。
(一定要遵守该格式)
然后把文件导入到test.jar包里,即可打开test.jar且保持了原有的功能。
效果图:
这是利用Http-Client打开新浪微博的例子。
希望能帮到你。