生成可执行的jar文件
jar file和executable jar file
jar file和executable jar file`jar`文件是一种Java归档文件,它包含了Java类文件、资源文件以及其他与Java应用程序相关的文件。
Java归档文件可以使用`jar`命令创建和管理。
`executable jar file`是指一种可执行的Java归档文件,它包含了Java 类文件、资源文件以及一个名为`manifest.mf`的文件。
`manifest.mf`文件用于指定Java应用程序的主类和启动参数。
executable jar文件可以使用`jar`命令和相应的参数创建。
创建executable jar文件的命令示例:```jar cvf my_app.jar MainClass -C bin/ .```这里,`my_app.jar`是创建的executable jar文件名,`MainClass`是Java 应用程序的主类名,`bin/`是存放可执行文件的目录。
在Windows操作系统中,您还可以使用`jar.exe`命令创建executable jar 文件。
创建命令如下:```jar.exe cvf my_app.jar MainClass -C bin/ .```需要注意的是,要运行executable jar文件,您需要使用Java运行时环境(JRE)或Java开发工具包(JDK)。
运行executable jar文件的命令示例:```java -jar my_app.jar```或者```java -jar my_app.jar```总之,`jar`文件和`executable jar`文件的主要区别在于,后者添加了一个`manifest.mf`文件,使得Java应用程序具有可执行性。
executable jar 文件可以使用`jar`命令或`jar.exe`命令创建,并在安装了Java运行时环境或Java开发工具包的计算机上运行。
Maven生成打包可执行jar包的方法步骤
Maven⽣成打包可执⾏jar包的⽅法步骤最近IDEA打可执⾏Jar包搞了三天,⼀直失败,好好学习⼀下Maven-assembly,在此记录⼀下1. 需求项⽬打包,满⾜以下要求:1.整个项⽬打⼀个Zip包下⾯包括应⽤程序、应⽤程序依赖的jar包、说明⽂档2.项⽬打的jar包可以执⾏不同类⾥的Main函数3.项⽬源码打的jar包要与依赖的第三⽅jar包分开4.项⽬⾥的执⾏脚本也要⼀块打包并进⾏分类5.document⽬录下的readme.txt放在压缩包的根⽬录下,其他的还放在这个⽬录下6.打的jar包去掉不需要的⽬录(⽂件)2. 开发环境IDEA-2016 Maven3.3.9项⽬的⽬录结构:3. Maven打包插件介绍assembly翻译过来就是组装、装配的意思Maven对项⽬打包常⽤的打包插件有三种,分别是:插件功能maven-jar-plugin maven 默认打包插件,⽤来创建 project jarmaven-shade-plugin打可执⾏包,executable(fat) jarmaven-assembly-plugin⽀持⾃定义打包⽅式这⾥使⽤maven-jar-plugin和maven-assembly-plugin项⽬⽬录:每次找jar包之前先clean⼀下,不然的话IDEA会认为你的项⽬没有修改⽽不重新加载另:配置⽂件的注释已经很详细了,这⾥就不另外再说明了4. Maven使⽤maven-jar-plugin打可执⾏jar包主要配置如下:<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.4</version><!-- 对要打的jar包进⾏配置 --><configuration><!-- Configuration of the archiver --><archive><!--⽣成的jar中,不要包含pom.xml和pom.properties这两个⽂件--><addMavenDescriptor>false</addMavenDescriptor><!-- Manifest specific configuration --><manifest><!--是否要把第三⽅jar放到manifest的classpath中--><addClasspath>true</addClasspath><!--⽣成的manifest中classpath的前缀,因为要把第三⽅jar放到lib⽬录下,所以classpath的前缀是lib/--><classpathPrefix>lib/</classpathPrefix></manifest></archive><!--过滤掉不希望包含在jar中的⽂件--><excludes><!-- 排除不需要的⽂件夹(路径是jar包内部的路径) --><exclude>**/assembly/</exclude></excludes></configuration></plugin>完整配置见底部5. Maven使⽤maven-assembly-plugin装需要打包的⽂件打进zip包pom.xml下的主要配置如下:<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.4</version><!-- 对项⽬的组装进⾏配置 --><configuration><!-- 指定assembly插件的配置⽂件所在位置 --><descriptors><descriptor>src/main/resources/assembly/package.xml</descriptor></descriptors></configuration><executions><execution><id>make-assembly</id><!-- 将组装绑定到maven⽣命周期的哪⼀阶段 --><phase>package</phase><goals><!-- 指定assembly插件的打包⽅式--><goal>single</goal></goals></execution></executions></plugin>assembly插件的配置⽂件package.xml见底部6. Maven⽣成可执⾏jar包及zip项⽬压缩包双击执⾏mvn:package会⽣成两个包:可执⾏jar包和项⽬压缩包,因为assembly的装配配置的是绑定到这上⾯来的双击执⾏assembly:single只⽣成项⽬压缩包这⾥执⾏mvn:package解压后的项⽬压缩包⽬录结构:7. 执⾏jar包解压缩⽣成的项⽬包TestString的源码:public class TestString {public static void main(String[] args) {String[] arr = new String[]{"aaa", "bbb", "ccc", "DDD", "EEE", "FFF"}; System.out.println(StringUtils.join(arr, "---"));}}TestNumber的源码:public class TestNumber {public static void main(String[] args) {Integer[] arr = new Integer[]{11, 22, 33, 44, 55, 66};System.out.println(StringUtils.join(arr, "---"));}}命令⾏运⾏⽣成的jarjava -classpath dong.jar com.dong.bigdata.TestStringjava -classpath dong.jar com.dong.bigdata.TestNumber运⾏结果:8. pom.xml配置包含两个⽂件:pom.xml整体的配置package.xml包含在pom.xml中,⽤于指定assembly装配时的配置pom.xml⽂件:<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- ####################### 基础设置 ###################### --><!--groupId:项⽬或者组织的唯⼀标志,并且配置时⽣成路径也是由此⽣成,如org.myproject.mojo⽣成的相对路径为:/org/myproject/mojo--> <groupId>com.dong</groupId><!--项⽬的通⽤名称--><artifactId>bigdata</artifactId><!--打包机制,如pom,jar,maven-plugin,ejb,war,ear,rar,par--><packaging>jar</packaging><!--项⽬的版本--><version>1.0-SNAPSHOT</version><!-- ####################### 项⽬信息 ###################### --><!--⽤户描述项⽬的名称,⽆关紧要的东西--><name>bigdata</name><!--写明开发团队的⽹站,⽆关紧要--><url>http:///.com</url><!-- ####################### 环境设置 ###################### --><properties><!-- 项⽬执⾏脚本⽬录 --><project.script.execute.directory>src/main/scripts/execute</project.script.execute.directory><!-- 项⽬说明⽂档⽬录 --><project.document.directory>document</project.document.directory><!-- 项⽬配置⽂件⽬录 --><project.config.directory>src/main/resources</project.config.directory><!-- 项⽬编码 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- 本地编译JDK版本 --><piler.source>1.8</piler.source><!-- 项⽬部署JDK版本 --><piler.target>1.8</piler.target></properties><!--配置Maven的仓库, 在此处配置的仓库会优先于setting.xml⾥配置的仓库,建议哪个仓库快,哪个配置在前⾯, 然后如果Maven在前⾯配置的仓库找不到的话会去后⾯的仓库找,如果后⾯的仓库都找不到,会去setting.xml中央仓库⾥找--><repositories><!-- 阿⾥云仓库,配置Maven仓库,速度快配置在最前⾯ --><repository><id>aliyun</id><url>/nexus/content/groups/public</url></repository><!-- 国内备选仓库 --><repository><id>repo2</id><url>/maven2/</url></repository><!-- Cloudera仓库,如果在阿⾥云仓库⾥找不到去Cloudera的仓库⾥找,主要是CDH版本Hadoop依赖的jar --> <repository><id>cloudera</id><url>https:///artifactory/cloudera-repos/</url></repository><!-- Scala仓库,如果前⾯两个都找不到来仓库找,如果此仓库也找不到,去中央仓库找 --><repository><id></id><name>Scala-Tools Maven2 Repository</name><url>/repo-releases</url></repository></repositories><dependencies><!-- https:///artifact/mons/commons-lang3 --><dependency><groupId>mons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version></dependency></dependencies><build><finalName>dong</finalName><plugins><!-- The configuration of maven-jar-plugin --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.4</version><!-- 对要打的jar包进⾏配置 --><configuration><!-- Configuration of the archiver --><archive><!--⽣成的jar中,不要包含pom.xml和pom.properties这两个⽂件--><addMavenDescriptor>false</addMavenDescriptor><!-- Manifest specific configuration --><manifest><!--是否要把第三⽅jar放到manifest的classpath中--><addClasspath>true</addClasspath><!--⽣成的manifest中classpath的前缀,因为要把第三⽅jar放到lib⽬录下,所以classpath的前缀是lib/--><classpathPrefix>lib/</classpathPrefix></manifest></archive><!--过滤掉不希望包含在jar中的⽂件--><excludes><!-- 排除不需要的⽂件夹(路径是jar包内部的路径) --><exclude>**/assembly/</exclude></excludes></configuration></plugin><!-- The configuration of maven-assembly-plugin --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.4</version><!-- 对项⽬的组装进⾏配置 --><configuration><!-- 指定assembly插件的配置⽂件所在位置 --><descriptors><descriptor>src/main/resources/assembly/package.xml</descriptor></descriptors></configuration><executions><execution><id>make-assembly</id><!-- 将组装绑定到maven⽣命周期的哪⼀阶段 --><!--<phase>package</phase>--><goals><!-- 指定assembly插件的打包⽅式--><goal>single</goal></goals></execution></executions></plugin></plugins></build></project>9. package.xml⽂件<?xml version="1.0" encoding="UTF-8"?><assembly><id>full</id><!-- 最终打包成⼀个⽤于发布的zip⽂件 --><formats><format>zip</format></formats><!-- 把依赖jar包打包进Zip压缩⽂件的lib⽬录下 --><dependencySets><dependencySet><!--不使⽤项⽬的artifact,第三⽅jar不要解压,打包进zip⽂件的lib⽬录--><useProjectArtifact>false</useProjectArtifact><!-- 第三⽅jar打包进Zip⽂件的lib⽬录下, --><!-- 注意此⽬录要与maven-jar-plugin中classpathPrefix指定的⽬录相同, --><!-- 不然这些依赖的jar包加载到ClassPath的时候会找不到--><outputDirectory>lib</outputDirectory><!-- 第三⽅jar不要解压--><!--<unpack>false</unpack>--></dependencySet></dependencySets><!-- ⽂件设置,你想把哪些⽂件包含进去,或者把某些⽂件排除掉,都是在这⾥配置--> <fileSets><!-- 把项⽬⾃⼰编译出来的可执⾏jar,打包进zip⽂件的根⽬录 --><fileSet><directory>${project.build.directory}</directory><outputDirectory></outputDirectory><includes><include>*.jar</include></includes></fileSet><!--把项⽬readme说明⽂档,打包进zip⽂件根⽬录下(这⾥针对⽬录document/readme.txt⽂件)${projet.document.directory}是pom.xml中⾃⼰配置的--><fileSet><directoryl>${projet.document.directory}</directoryl><outputDirectory></outputDirectory><includes><include>readme.*</include></includes></fileSet><!--把项⽬相关的说明⽂档(除了readme⽂档),打包进zip⽂件根⽬录下的document⽬录(这⾥针对document/exclode.txt⽂件)${project.document.directory}是在pom.xml中⾃⼰配置的--><fileSet><directory>${project.document.directory}</directory><outputDirectory>document</outputDirectory><excludes><exclude>readme.*</exclude></excludes></fileSet><!--把项⽬的脚本⽂件⽬录(src/main/scripts )中的启动脚本⽂件,打包进zip⽂件的根⽬录(这⾥针对的是src/scripts/execute/include-file.sh⽂件)${project.script.execute.directory}--><fileSet><directory>${project.script.execute.directory}</directory><outputDirectory></outputDirectory><includes><include>*</include></includes></fileSet></fileSets></assembly>到此这篇关于Maven ⽣成打包可执⾏jar包的⽅法步骤的⽂章就介绍到这了,更多相关Maven ⽣成可执⾏jar 内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
-jar命令用法-概述说明以及解释
-jar命令用法-概述说明以及解释1.引言1.1 概述在Java开发中,-jar命令是一个经常使用的命令,用于执行打包为jar 文件的Java应用程序。
它为我们提供了一种方便的方式来启动和运行独立的Java应用程序,无需考虑类路径的问题。
使用-jar命令时,我们只需要提供jar文件的路径作为参数,Java虚拟机(JVM)会自动搜索并加载jar文件中的主类作为应用程序的入口点。
这使得我们可以将整个应用程序打包到一个jar文件中,方便部署和发布。
与传统的java命令相比,-jar命令有一些独特的特性。
首先,它会忽略类路径(即不会加载classpath中的类),而是只加载jar文件中的类。
这使得我们可以确保应用程序只使用了我们想要的类,而不会引入其他不必要的类或版本冲突。
其次,-jar命令还可以让我们在jar文件中指定一个清单文件(manifest),其中可以包含额外的元数据和配置信息。
通过这种方式,我们可以在运行应用程序时传递一些参数或配置信息,而不必在命令行中逐个指定。
另外,-jar命令还能够处理一些常见的问题,比如自动解压缩jar文件、加载外部依赖库等。
这些功能使得我们可以更加方便地打包和分发我们的应用程序,减少了很多繁琐的配置和部署步骤。
总之,-jar命令是Java开发中一个非常有用的工具,它简化了应用程序的启动和部署过程,提高了开发效率。
在本文的接下来部分,我们将详细介绍如何正确地使用-jar命令,以及一些常见问题的解决方法。
1.2 文章结构文章结构部分的内容:文章结构是指文章的整体框架和组织方式,它对于读者来说具有重要的指导作用。
本文将按照以下结构展开介绍-jar命令的用法。
首先,文章将引言部分,对本文的主题进行概述。
我们将介绍-jar命令在Java开发中的重要性以及它的基本功能和作用。
同时,我们还会介绍本文的文章结构和目的,以便读者可以清晰地了解本文的内容和目标。
接下来,正文部分将涵盖两个要点。
jar file和executable jar file
jar file和executable jar file在Java开发中,JAR(Java Archive)文件是一种类似于ZIP格式的文件,用于将Java类、相关资源和元数据打包在一起。
通过使用JAR文件,可以方便地共享和部署Java应用程序。
而可执行的JAR文件是指含有可执行入口点(main方法)的JAR文件,可以直接运行程序。
要创建一个JAR文件,可以使用Java开发工具包(JDK)自带的jar命令行工具。
下面是一些创建JAR文件的常用命令示例:1. 创建一个空的JAR文件:```jar cvf myjar.jar```2. 将某个目录下的所有文件和文件夹添加到JAR文件中:```jar cvf myjar.jar mydirectory```3. 添加指定的文件到JAR文件中:```jar uvf myjar.jar myfile.class```4. 添加一个清单文件(MANIFEST.MF)到JAR文件中:```jar cvfm myjar.jar MANIFEST.MF myfile.class```创建可执行的JAR文件需要在清单文件中指定程序的入口点(main类名)。
下面是一个典型的清单文件示例:```Manifest-Version: 1.0Main-Class: com.example.MyMainClass```要将JAR文件设置为可执行,可以使用以下命令:```jar cvfm myexecutable.jar MANIFEST.MF myfile.class```执行可执行的JAR文件可以在命令行中使用java命令:```java -jar myexecutable.jar```生成可执行JAR文件的过程中,需要确保所有依赖的类和资源都被正确地包含在JAR文件中。
通常,会将依赖的JAR文件放置在特定的目录下,并使用Class-Path属性指定这些依赖。
值得注意的是,JAR文件在执行时,会自动解压并将文件内容加载到内存中,这可以提高程序的运行效率。
jar file和executable jar file -回复
jar file和executable jar file -回复什么是Jar文件和可执行Jar文件?Jar文件是Java Archive(Java归档)文件的简称,它是一种用于打包Java 类、资源文件和元数据的文件格式。
与将Java代码编译为单个可执行文件(如Windows的.exe文件)不同,Jar文件可以包含多个类和资源文件,并且可以在Java虚拟机(JVM)上运行。
它可以被认为是一种将相关的Java文件组合在一起以便于分发和部署的方式。
可执行Jar文件是一种特殊的Jar文件,它包含了可以直接在命令行上执行的Java应用程序。
通常,这些可执行Jar文件具有一个主类(Main class),当执行JVM时,它将被调用以启动应用程序。
那么,如何创建一个Jar文件和可执行Jar文件呢?以下是一步一步的过程:第1步:编写Java代码首先,在创建Jar文件之前,您需要编写Java代码。
这些代码可以包含一个或多个类文件,以及任何您的应用程序所需的其他资源文件。
确保在Java代码编写过程中,您的代码结构遵循最佳实践原则,以及适用于面向对象和可维护性的设计模式。
第2步:编译Java代码使用Java编译器(例如javac命令)编译您的Java代码。
确保您的代码不包含任何错误或警告,并且可以成功编译。
第3步:创建清单文件清单文件(Manifest file)是一个包含元数据的文本文件,用于描述Jar 文件的属性和配置信息。
清单文件包含在Jar文件中,可以指定Jar文件中的主类,以及其他必要的依赖关系和配置项。
您可以使用文本编辑器创建一个清单文件,并将其保存为名为Manifest.mf的文件。
在清单文件中,您需要使用特定的格式指定主类,例如:Main-Class: com.example.MainApp请注意,这里的"com.example.MainApp"应该是您应用程序的主类的完整名称。
IDEA生成可运行jar包(包含第三方jar包)流程详解
IDEA⽣成可运⾏jar包(包含第三⽅jar包)流程详解最近现⽹需要处理⼀下数据,来适配⼀个场景。
安排我来编写⼀个脚本来实现,由于步骤⽐较多,且需要调⽤其他服务接⼝,使⽤shell脚本来实现⽐较困难,所以想到了使⽤shell脚本调⽤java可执⾏jar包的⽅式来实现,期间遇到了很多问题,因此写篇⽂章记录⼀下。
IDEA创建Java项⽬打开IDEA,左上⾓菜单项依次选择File--->New--->Project--->Java--->Next--->Next--->输⼊项⽬名称(test)。
新的java项⽬就创建好了(不能使⽤Maven项⽬,或许可以,我没有研究过)。
IDEA导⼊所需三⽅jar包项⽬中使⽤httpclient发送请求,使⽤到了fastjson转换数据,因此需要导⼊相关jar包作为项⽬依赖。
右键项⽬名--->选择Open Module Setting(默认快捷键F4)--->打开的弹框左侧选择Libraries--->弹框中间点击“+”号--->Java--->在弹出的选择框中选择所依赖的所有jar包(将所有jar包放到同⼀个library中)--->OK确定编写业务逻辑编写业务逻辑,⼊⼝使⽤⼀个main函数调⽤,以下是代码样例:package com.demo;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.utils.URIBuilder;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;import java.io.IOException;import .URI;import java.util.HashMap;import java.util.Map;public class Main {public static void main(String[] args) {String url = "";String result = doHttpGet(url, new HashMap<>());System.out.println(result);}public static String doHttpGet(String url, Map<String, String> param) {// 创建Httpclient对象CloseableHttpClient httpclient = HttpClients.createDefault();String resultString = "";CloseableHttpResponse response = null;try {// 创建uriURIBuilder builder = new URIBuilder(url);if (param != null) {for (String key : param.keySet()) {builder.addParameter(key, param.get(key));}}URI uri = builder.build();// 创建http GET请求HttpGet httpGet = new HttpGet(uri);// 执⾏请求response = httpclient.execute(httpGet);// 判断返回状态是否为200if (response.getStatusLine().getStatusCode() == 200) {resultString = EntityUtils.toString(response.getEntity(), "UTF-8");}} catch (Exception e) {e.printStackTrace();} finally {try {if (response != null) {response.close();}httpclient.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}}创建jar包打包规则右键项⽬名--->选择Open Module Setting(默认快捷键F4)--->打开的弹框左侧选择Artifacts点击中间的“+”号,选择JAR--->From modules with dependenciesMain class右侧单机⽂件夹图标,选择⾃⼰编写main⽅法的类:extract to the target Jar:表⽰将依赖的三⽅jar包打包到⽬标jar包⾥⾯,通过这种⽅式打包的jar包,最终只有⼀个jar⽂件,我个⼈⽐较喜欢copy to the output directory and link via manifest:将依赖的jar包拷贝到某个路径下,并且通过mainifest进⾏链接,这种情况下依赖的三⽅jar包会以独⽴jar包的⽅式存在Directry for META-INF/MAIFEST.MF:指定mainifest⽂件⽣成路径,如果上⾯选择了copy to the output directory and link via manifest,那么这个⽂件要确保和⽣成的jar包放在同⼀个⽬录下,否则会出现⽣成的jar包引⽤不到第三⽅jar包的⽅式,这⾥我们将第三⽅jar包打包到⽬标jar包中,不存在这个问题,所以使⽤默认路径即可。
Java项目生成可执行jar包、exe文件以及在Windows下的安装文件
Java项⽬⽣成可执⾏jar包、exe⽂件以及在Windows下的安装⽂件1、如何通过eclipse将项⽬⽣成可执⾏jar包⾸先把在eclipse下的java项⽬导出jar file下⼀步下⼀步下⼀步最后点击完成,便⽣成了可执⾏的jar⽂件。
可以在刚刚选择导出⽬录的⽂件夹中找到。
直接下⼀步,选择第⼆个下⼀步下⼀步如果要在64位下运⾏,则要点击下⾯那个按钮,然后选择32bit or 64 bit。
如果是32位的直接下⼀步进⼊下⼀个界⾯,勾选那个下⼀步,下⼀步,进⼊这个界⾯,点击“+”然后选择你刚刚⽣成的jar⽂件,如有第三⽅jar包,也要⼀⼀加⼊进去。
点击ok回到刚刚的界⾯,选择程序的⼊⼝类⽂件下⼀步,选择最⼩可运⾏的jre版本如果只是在本机有jdk环境下运⾏直接下⼀步,如果要在没有jre环境下运⾏则要把⾃⼰安装jdk⽂件夹下的jre⽂件加⼊进去。
点击advanced options选择search sequence,进⼊下⼀个界⾯,删除这两个⽂件然后加⼊⾃⼰的jre⽂件,注意:jre⽂件的路径⾥要包⼀层jre⽬录,即jre\jre,否则⽣成的exew⽂件在其没有jre环境的电脑⾥⽆法运⾏。
回到刚刚的界⾯⼀直下⼀步,选择默认的就可以了,最后完成去你刚刚选择输出exe⽂件下找到刚刚⽣成的exe⽂件。
点击是可以运⾏的,但如果要在其他电脑运⾏,则每次都要把jre⽂件和exe⼀起复制到其他电脑上。
所以下⼀步就是把exe⽂件和jre编译成在windows下的可按照⽂件。
选择这个,点击OK下⼀步,默认按照⽂件的⽬录,其他默认。
下⼀步,选择刚刚⽣成的exe⽂件和jre⽂件夹下⼀步默认下⼀步,这些都是许可⽂件和安装声明等,可以不选下⼀步,下⼀步进⼊这个界⾯下⼀步,勾选yes下⼀步,完成。
选择是下⼀步,可以保持也可以不保存最后编译界⾯,等编译完成就⽣成了可以安装的⽂件找到刚刚输出⽂件的⽬录和⽣成的⽂件,双击安装。
安装完成后的⽬录如果是这样,则说明⼀切成功。
Maven 是 Apache 组织下的一个跨平台的项目管理工具
Maven 是Apache 组织下的一个跨平台的项目管理工具,它主要用来帮助实现项目的构建、测试、打包和部署。
Maven 提供了标准的软件生命周期模型和构建模型,通过配置就能对项目进行全面的管理。
它的跨平台性保证了在不同的操作系统上可以使用相同的命令来完成相应的任务。
Maven 将构建的过程抽象成一个个的生命周期过程,在不同的阶段使用不同的已实现插件来完成相应的实际工作,这种设计方法极大的避免了设计和脚本编码的重复,极大的实现了复用。
索引预览:1.maven基础2.插件和仓库,设置代理3.依赖,聚合,继承4.maven属性,5.maven生命周期,phases阶段,goal目标。
6.maven仓库7.补充内容:生成可执行jar依赖树配置文件profilemaven goal目标表1. Maven 目录结构src/main/java Application/Library sourcessrc/main/resources A pplication/Library resourcessrc/main/filters Resource filter filessrc/main/assembly Assembly descriptorssrc/main/config Configuration filessrc/main/scripts Application/Library scriptssrc/main/webapp Web application sourcessrc/test/java Test sourcessrc/test/resources T est resourcessrc/test/filters Test resource filter filessrc/site SiteLICENSE.txt Project's licenseREADME.txt Project's readme项目对象模型POM-Maven 的灵魂POM 即Project Object Module,项目对象模型,在pom.xml 文件中定义了项目的基本信息、源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、以及构建项目所用的插件,依赖继承关系。
jar file和executable jar file -回复
jar file和executable jar file -回复什么是jar文件和可执行的jar文件?在Java编程中,jar文件(Java Archive)是一种用于打包和分发Java类、资源文件和元数据的压缩文件格式。
它类似于其他操作系统上的zip文件,但是专门用于Java应用程序的打包和部署。
jar文件是Java程序的标准交付格式,并且可以在各种操作系统上运行。
与普通的jar文件不同,可执行的jar文件是包含特定属性的jar文件,允许它作为独立的应用程序直接从操作系统运行,而无需使用额外的命令来启动它。
可执行的jar文件通常包含一个主类和一个清单文件,将主类定义为应用程序的入口点。
本文将详细探讨jar文件和可执行的jar文件的概念、创建方法、以及它们在Java开发和部署中的作用。
一、什么是jar文件?1.1 jar文件的定义和结构jar文件是Java开发中最常用的归档文件格式之一。
它通常包含了一个或多个Java类文件、资源文件、配置文件和其他元数据文件。
jar文件内部的结构与操作系统上的文件夹和文件类似,允许通过路径和文件名来访问其中的内容。
1.2 jar文件的优点使用jar文件进行应用程序的分发和部署具有以下优点:- 方便性:所有相关的Java类和资源文件可以打包在一个文件中,使得分发和部署变得更加方便。
- 独立性:jar文件可以在不同的操作系统上运行,因为Java虚拟机(JVM)提供了对所有平台的兼容性。
- 安全性:jar文件可以通过数字签名进行验证,确保文件的完整性和来源的真实性。
- 组织性:jar文件可以按照目录结构来组织类和资源文件,使得代码的组织和管理更加清晰。
二、什么是可执行的jar文件?2.1 可执行的jar文件的定义可执行的jar文件是一个特殊类型的jar文件,其中包含了一个清单文件(Manifest)和一个主类(Main-Class)。
清单文件是一个文本文件,用于描述jar文件的特性和属性。
jar file和executable jar file -回复
jar file和executable jar file -回复jar文件和可执行jar文件是Java编程语言中常用的文件格式。
在本文中,我们将逐步回答以下问题:什么是jar文件?什么是可执行jar文件?如何创建和运行jar文件?如何创建和运行可执行jar文件?一、什么是jar文件?Java Archive(JAR)文件是一种用于存储和传输Java类文件(.class文件)、资源和元数据的压缩文件格式。
它是Java平台上打包和分发应用程序和库的标准方式之一。
通常,jar文件包含经过编译的Java类文件、位图、声音文件、文本文件、配置文件和其他资源文件。
jar文件使用标准的ZIP文件格式,可以使用压缩工具解压缩并查看其中的内容。
通过压缩文件,jar文件能够减少文件大小,并方便地将多个文件组合成一个单独的文件。
二、什么是可执行jar文件?可执行jar文件是一种jar文件,可以在Java虚拟机(JVM)上直接运行的独立应用程序。
与普通的jar文件不同,可执行jar文件包含一个特殊的清单文件(MANIFEST.MF),该文件指定了主类(Main-Class),即应用程序的入口点。
可执行jar文件通常用于将Java应用程序打包成一个单独的文件以便于分发和执行。
它可以在不需要安装任何其他依赖项的情况下在任何支持Java 虚拟机的平台上运行。
三、如何创建和运行jar文件?1. 创建jar文件步骤一:编写Java源代码并将其编译为.class文件。
例如,我们编写一个名为"HelloWorld.java"的简单Java程序。
javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}然后使用javac命令将其编译为.class文件:javac HelloWorld.java步骤二:创建一个空的清单文件(MANIFEST.MF)。
jar file和executable jar file -回复
jar file和executable jar file -回复什么是jar文件和可执行jar文件?在Java编程中,JAR文件(Java Archive)是一种用于存储和分发Java 类文件和相关元数据的文件格式。
它将多个Java类文件和其他资源文件(如图像、文本文件等)打包在一个单独的文件中。
这使得JAR文件成为Java应用程序的便捷分发方式。
Jar文件是一个压缩的文件,它可以包含一系列的.class和相关资源文件,这些文件被打包成一个文件,扩展名为.jar。
JAR文件中可以包含多个目录和子目录,用于组织和管理Java类和相关文件。
JAR文件提供了一种灵活而有效的方式来将应用程序打包成一个单独的文件,使其易于存储、传输和执行。
与普通的JAR文件相比,可执行JAR文件(Executable JAR)是一种特殊的JAR文件,它包含了一个可执行的入口点,可以直接运行。
可执行JAR 文件通常用于Java应用程序的分发和部署,使得用户可以通过双击文件或在命令行上运行文件来启动应用程序。
为什么要使用JAR文件?JAR文件的使用具有以下几个优势:1. 可重用性:JAR文件可以将Java类和资源文件打包在一起,使其可重用。
其他开发人员可以轻松地使用这些JAR文件,而不必重新编译代码。
2. 可移植性:JAR文件是一种跨平台的文件格式,可以在不同的操作系统上运行。
这使得Java应用程序可以在不同的环境中轻松部署和运行。
3. 简化部署:JAR文件提供了一种简单的方式来分发和部署Java应用程序。
通过将所有的类和资源文件打包在一个文件中,减少了配置和部署的复杂性。
4. 提高性能:JAR文件可以通过压缩和优化来减少文件大小,从而提高应用程序的性能。
如何创建JAR文件?创建JAR文件可以通过命令行或使用集成开发环境(IDE)来完成。
下面是使用命令行创建JAR文件的步骤:1. 编写Java代码:首先,编写需要打包的Java类和相关资源文件。
idea打包java项目生成jar 原理-概述说明以及解释
idea打包java项目生成jar 原理-概述说明以及解释1.引言1.1 概述在Java开发中,项目的打包是必不可少的环节。
打包后的项目可以方便地部署和传输,使得程序在不同的环境中能够运行。
而JAR(Java Archive)文件则是一种常见的打包格式,它将Java项目的所有源代码、资源文件和依赖库等打包在一起,并且可以被Java虚拟机(JVM)识别和执行。
JAR打包对于Java项目的部署和运行起到了至关重要的作用。
在打包过程中,所有的源代码、配置文件、第三方库以及其他所需的资源文件都会被打包成一个可执行的JAR文件。
这个JAR文件可以被轻松地传输、备份和部署到其他环境中。
了解JAR打包的原理对于Java开发人员来说是非常重要的。
它可以帮助我们更好地理解项目的结构和组成,并且能够正确地配置和优化JAR 文件,以满足项目的需求和性能要求。
另外,掌握JAR打包的原理还有助于我们更好地理解Java的类加载机制,从而能够更好地调试和优化项目的运行效率。
本文将从概念和背景开始,介绍Java项目打包成JAR的原理。
我们将探讨JAR文件的组成和结构,以及JAR打包过程中的一些关键步骤和技巧。
最后,我们将总结JAR打包的重要性,并强调了解JAR打包原理的好处。
通过阅读本文,希望读者能够对Java项目的打包有更深入的了解,并能够在实际开发中灵活应用JAR打包技术。
1.2文章结构文章结构部分的内容主要是对本篇长文的章节和内容进行概括和介绍。
以下是文章结构部分的内容:1.2 文章结构本文主要围绕着"idea打包Java项目生成JAR"的原理展开讨论,旨在帮助读者了解Java项目打包成JAR文件的概念、背景和原理。
为了使读者更好地理解,本文按照以下章节进行组织和阐述。
第一部分是引言部分,包括概述、文章结构和目的。
在本部分,我们将对整篇文章进行简要回顾,并明确文章的目的和意义,以便读者能够更好地理解和把握文章内容的整体框架。
使用IntelliJ Idea 13.1.3打包成可执行的JAR
使用IntelliJ Idea打包可执行JAR1、Model结构如下:Client中放的是Frame窗体,Dll中放的是访问数据库的DAO类,以及引用的Hibernate相关依赖包。
Main函数入口在Client中。
2、具体步骤:(1)File -> project Structure ;(2)①选择Artifacts,②点击“+”按钮③选择jar ,④选择From modules with Dependencies.(3)点击create jar from Modules后弹出下面窗口。
(4)①选择要打包的Module: 我的是Antilander.Client.②选择Main Class:我的是Application③Jar files from libraries 选择默认的extract to the target jar ④单击OK。
(5)OK之后,出现以下界面。
①Name:为打包完成后的jar名称。
②type:为Jar ③output directory 为导出jar包所在位置。
(6)将Dll展开,选中其Dll目录下的所有jar包,单击右键,选择Extract Into Output Root(目的:将其添加到Client下,作为依赖包)。
(7)操作后效果如下,然后点击OK。
完成配置。
(8)最后需要Build一下。
①Build->Buidl Artifacts ->选择你刚才创建的jar(我的是:Antilaunder.Client:jar) Build。
等待完成Build。
(9)找到你之前设定的导出目录,找到build完成的jar文件双击运行或者进入dos使用命令运行:java –jar Antilaunder.Client.jar (执行此命令前,需要在dos中进入要执行的jar文件所在目录)推荐使用后者,方便调试。
致谢:IntelliJ IDEA 后端开发群群友的帮助。
linux jar命令参数
linux jar命令参数Linux下的jar命令参数在Linux系统下,jar命令是用来创建和管理Java Archive(JAR)文件的工具。
JAR文件是将多个Java类文件、资源文件和元数据打包到一个文件中的一种压缩文件格式。
通过使用jar命令,我们可以执行多种操作,如创建JAR文件、解压缩JAR文件、列出JAR文件中的内容等。
本文将介绍一些常用的jar命令参数及其用法。
1. 创建JAR文件要创建一个JAR文件,可以使用以下命令:```shelljar cf jarfile.jar inputfiles```其中,`jarfile.jar`是要创建的JAR文件的名称,`inputfiles`是要添加到JAR文件中的文件或目录的列表。
可以同时添加多个文件或目录。
例如,要创建一个名为`myapp.jar`的JAR文件,并将当前目录下所有的.class文件添加到JAR文件中,可以使用以下命令:```shelljar cf myapp.jar *.class```2. 解压缩JAR文件要解压缩一个JAR文件,可以使用以下命令:```shelljar xf jarfile.jar```其中,`jarfile.jar`是要解压缩的JAR文件的名称。
该命令将会将JAR文件中的内容解压缩到当前目录下。
例如,要解压缩一个名为`myapp.jar`的JAR文件,可以使用以下命令:```shelljar xf myapp.jar```3. 列出JAR文件中的内容要列出一个JAR文件中包含的文件和目录,可以使用以下命令:```shelljar tf jarfile.jar```其中,`jarfile.jar`是要列出内容的JAR文件的名称。
该命令将会输出JAR文件中的每个文件和目录的名称。
例如,要列出一个名为`myapp.jar`的JAR文件中的内容,可以使用以下命令:```shelljar tf myapp.jar```4. 更新JAR文件要向一个已存在的JAR文件中添加新的文件或目录,可以使用以下命令:```shelljar uf jarfile.jar inputfiles```其中,`jarfile.jar`是要更新的JAR文件的名称,`inputfiles`是要添加到JAR文件中的文件或目录的列表。
java打包成可执行的jar或者exe的详细步骤
java打包成可执⾏的jar或者exe的详细步骤下⾯介绍过程:在Eclipse下,程序能够正常运⾏.⽅法1:直接拷贝其它能运⾏的JAR⽂件中的MANIFEST.MF进⾏修改⽅法2:利⽤IDE⼯具,如Eclipse在⽣成JAR⽂件时⾃动⽣成MANIFEST.MF内容如下:复制代码代码如下:Manifest-Version: 1.0Main-Class: manager.ui.MainFrameClass-Path: ./lib/spring.jar ./lib/hibernate.jar ./lib/derby.jarSplashScreen-Imager: manager/resources/images/splash.jpg说明:Manifest-Version -指定清单⽂件的版本号Main-Class -指定程序运⾏的⼊⼝类。
注意:类名后不要加class扩展名Class-Path -指定⽀持库的路径。
“.”指程序运⾏⽬录,即导出的JAR包所在⽬录。
程序运⾏时依据Class-Path项的设置路径来查找⽀持库。
每⼀个⽀持库之间⽤空格隔开。
在这⾥使⽤了hibernate,spring,derby.注意:1.如果Java应⽤程序⽤到了⼀些Eclipse包,那么就必须将这些包也复制到程序运⾏⽬录,设置到Class-Path,否则程序将⽆法运⾏.引⽤了⼀些外部组件也需要如此设置,如hibernate,spring,derby.2. 除了⼊⼝类的包名和类名之外,其他设置项都不分⼤⼩写,⽐如:Class-Path写成class-path或CLASS-PATH也可以,swt.jar写成SWT.JAR也⾏。
3.类名后不要加class扩展名4.每⼀⾏的':'后都有⼀个空格,如Class-Path:<空格>./lib/spring.jar5.Class-Path中.引⼊的JAR⽂件每⾏不得超过19个,否则会报错.但在让⼈意外的是每⾏只有前9个有效,故将所有同类型的JAR ⽂件做成⼀个JAR⽂件.如我这⾥的spring.jar,hibernate.jar,derby.jar都是同类JAR⽂件的组合.在spring的 'sessionFactory' bean的配置中则要这样写(与程序中ClassPathXmlApplicationContext对应)复制代码代码如下:manager/entity/MyFile.hbm.xmlmanager/entity/FileType.hbm.xml...1.右键单击项⽬名,在弹出菜单中选择“Export”。
Javajar包、程序运行参数
Javajar包、程序运⾏参数jar包JAR⽂件全称 Java Archive File,意为Java档案⽂件。
JAR⽂件是⼀种压缩⽂件,也被称为JAR包。
JDK的bin⽬录下有个jar.exe,负责jar包的相关操作。
⽣成.jar包:1、File->Project Structure->Artifacts-> + ->JAR->Empty->2、设置Jar⽂件名、Jar⽂件所在⽬录-将右边需要打包到jar包的内容拖到左边的项⽬中(compile output是必选的,第三⽅的jar包也要选)->3、[单击左边的.jar⽬录,下⽅会出现对应选项->Create Manifest->选择MANIFEST.MF⽂件的⽣成⽬录(项⽬下的任何⽬录均可,通常选项⽬名)->选择主类(也可以在.MF中⼿动添加⼀⾏:Main-Class: 包名.主类名)->]4、ok->Build->Build Artifacts->Build。
第三步是⽣成可执⾏的.jar包(带主类)。
缺省第三步,只⽣成普通的.jar包(不可执⾏)在命令提⽰符下执⾏可执⾏的.jar⽂件:1、切换到jdk所在盘符 d: 不能加\2、切换到java.exe所在⽬录 cd D:\jdk-12.0.1\bin如果path系统环境变量添加了jdk的bin⽬录,则可跳过前两步3、运⾏可执⾏的jar包 java -jar C:\Users\chy\Desktop\untitled\out\artifacts\unnamed\unnamed.jar程序运⾏参数Java主函数形式:public static void main(String[] args){......}也就是说可以向Java程序传递⼀个String[]。
1、在IDEA中debug、run时向JVM传递参数:Edit Configurations->Program arguments2、在命令提⽰符下执⾏主类:java 主类名字符串1 字符串2 字符串3......3、在命令提⽰符下执⾏可执⾏的.jar包:java -jar C:\Users\chy\Desktop\untitled\out\artifacts\unnamed\unnamed.jar 字符串1 字符串2 字符串3.....字符串1 字符串2 字符串3......以空格分开,字符串不⽤加引号。
jar file和executable jar file -回复
jar file和executable jar file -回复jar文件和可执行jar文件是Java语言中常用的文件类型,用于打包和发布Java应用程序。
本文将详细介绍jar文件和可执行jar文件的定义、创建、使用和注意事项。
一、定义1. jar文件(Java Archive)是一种用于打包Java类文件、资源文件和元数据的压缩文件格式。
它类似于zip文件,但专门用于Java应用程序。
2. 可执行jar文件是包含可执行代码和所需的依赖项的jar文件。
通过在文件中定义一个可执行的Java类,我们可以创建一个直接运行的Java应用程序。
二、创建jar文件创建一个jar文件可以通过Java开发工具中的命令行工具或IDE进行。
下面是一种常见的创建jar文件的步骤:1. 编写Java应用程序的源代码和资源文件。
2. 使用Java编译器(javac)将源代码编译为字节码文件(.class文件)。
3. 创建一个清单文件(Manifest.mf),其中包含jar文件的基本信息,例如主类和依赖项。
4. 使用jar工具(jar命令)将编译后的字节码文件和资源文件打包到一个jar文件中。
三、使用jar文件使用jar文件可以实现Java应用程序的部署和分发。
下面是一些常见的使用jar文件的场景:1. 打包库文件:将常用的Java类库、第三方库或自己编写的库文件打包成jar文件,以便于其他开发者使用。
2. 打包应用程序:将Java应用程序的所有类文件和资源文件打包成jar 文件,方便部署到不同环境。
3. 资源共享:将一组相关的资源文件打包成jar文件,可以被其他应用程序共享和使用。
4. 程序扩展:通过在应用程序中引入其他jar文件,实现功能的扩展和模块化。
四、创建可执行jar文件创建可执行jar文件需要在清单文件中指定jar文件的入口点(Main-Class)。
下面是一个创建可执行jar文件的步骤:1. 编写Java应用程序的源代码,并确保存在一个包含main方法的可执行类。
制作可执行的JAR文件包及jar命令详解zt
制作可执行的J A R文件包及j a r命令详解z t 常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件;通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了;而另一种是使用 JET 来进行编译;但是 JET 是要用钱买的,而且据说 JET 也不是能把所有的 Java 程序都编译成执行文件,性能也要打些折扣;所以,使用制作可执行 JAR 文件包的方法就是最佳选择了,何况它还能保持 Java 的跨平台特性;下面就来看看什么是 JAR 文件包吧:1. JAR 文件包JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式;JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包;JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/ 文件,这个文件是在生成JAR 文件的时候自动创建的;举个例子,如果我们具有如下目录结构的一些文件:==`-- test`--把它压缩成 ZIP 文件 ,则这个 ZIP 文件的内部目录结构为:`-- test`--如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 ,则这个 JAR 文件的内部目录结构为:|-- META-INF| `--`-- test`2. 创建可执行的 JAR 文件包制作一个可执行的 JAR 文件包来发布你的程序是 JAR 文件包最典型的用法;Java 程序是由若干个 .class 文件组成的;这些 .class 文件必须根据它们所属的包不同而分级分目录存放;运行前需要把所有用到的包的根目录指定给 CLASSPATH 环境变量或者 java 命令的 -cp 参数;运行时还要到控制台下去使用 java 命令来运行,如果需要直接双击运行必须写 Windows 的批处理文件 .bat 或者 Linux 的 Shell 程序;因此,许多人说,Java 是一种方便开发者苦了用户的程序设计语言;其实不然,如果开发者能够制作一个可执行的 JAR 文件包交给用户,那么用户使用起来就方便了;在 Windows 下安装 JRE Java Runtime Environment 的时候,安装文件会将 .jar 文件映射给打开;那么,对于一个可执行的JAR 文件包,用户只需要双击它就可以运行程序了,和阅读 .chm 文档一样方便 .chm 文档默认是由打开的;那么,现在的关键,就是如何来创建这个可执行的 JAR 文件包;创建可执行的 JAR 文件包,需要使用带 cvfm 参数的 jar 命令,同样以上述 test 目录为例,命令如下:jar cvfm test这里和两个文件,分别是对应的参数 f 和 m,其重头戏在 ;因为要创建可执行的 JAR 文件包,光靠指定一个文件是不够的,因为 MANIFEST 是JAR 文件包的特征,可执行的 JAR 文件包和不可执行的 JAR 文件包都包含MANIFEST;关键在于可执行JAR 文件包的MANIFEST,其内容包含了Main-Class 一项;这在 MANIFEST 中书写格式如下:Main-Class: 可执行主类全名包含包名例如,假设上例中的是属于 test 包的,而且是可执行的类定义了public static void mainString 方法,那么这个可以编辑如下:Main-Class: <回车>;这个可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: 一行,且该行以一个回车符结束即可;创建了文件之后,我们的目录结构变为:==|-- test| `--`--这时候,需要到 test 目录的上级目录中去使用 jar 命令来创建 JAR 文件包;也就是在目录树中使用“==”表示的那个目录中,使用如下命令:jar cvfm test之后在“==”目录中创建了 ,这个就是执行的 JAR 文件包;运行时只需要使用 java -jar 命令即可;需要注意的是,创建的 JAR 文件包中需要包含完整的、与 Java 程序的包结构对应的目录结构,就像上例一样;而 Main-Class 指定的类,也必须是完整的、包含包路径的类名,如上例的;而且在没有打成 JAR 文件包之前可以使用 java <类名>; 来运行这个类,即在上例中 java 是可以正确运行的当然要在 CLASSPATH 正确的情况下;3. jar 命令详解jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 ,Linux 下文件名为 jar;它的运行需要用到 JDK 安装目录下 lib 目录中的文件;不过我们除了安装 JDK 什么也不需要做,因为 SUN 已经帮我们做好了;我们甚至不需要将放到 CLASSPATH 中;使用不带任何的 jar 命令我们可以看到 jar 命令的用法如下:jar {ctxu}vfm0M jar-文件 manifest-文件 -C 目录文件名 ...其中 {ctxu} 是 jar 命令的子命令,每次 jar 命令只能包含 ctxu 中的一个,它们分别表示:-c 创建新的 JAR 文件包-t 列出 JAR 文件包的内容列表-x 展开 JAR 文件包的指定文件或者所有文件-u 更新已存在的 JAR 文件包添加文件到 JAR 文件包中vfm0M 中的选项可以任选,也可以不选,它们是 jar 命令的选项参数-v 生成详细报告并打印到标准输出-f 指定 JAR 文件名,通常这个参数是必须的-m 指定需要包含的 MANIFEST 清单文件-0 只存储,不压缩,这样产生的 JAR 文件包会比不用该参数产生的体积大,但速度更快-M 不产生所有项的清单MANIFEST〕文件,此参数会忽略 -m 参数jar-文件即需要生成、查看、更新或者解开的 JAR 文件包,它是 -f 参数的附属参数manifest-文件即 MANIFEST 清单文件,它是 -m 参数的附属参数-C 目录表示转到指定目录下去执行这个 jar 命令的操作;它相当于先使用 cd 命令转该目录下再执行不带 -C 参数的 jar 命令,它只能在创建和更新 JAR 文件包的时候可用;文件名 ... 指定一个文件/目录列表,这些文件/目录就是要添加到 JAR 文件包中的文件/目录;如果指定了目录,那么 jar 命令打包的时候会自动把该目录中的所有文件和子目录打入包中;下面举一些例子来说明 jar 命令的用法:1 jar cf test该命令没有执行过程的显示,执行结果是在当前目录生成了文件;如果当前目录已经存在 ,那么该文件将被覆盖;2 jar cvf test该命令与上例中的结果相同,但是由于 v 参数的作用,显示出了打包过程,如下:标明清单manifest增加:test/读入= 0 写出= 0存储了 0%增加:test/读入= 7 写出= 6压缩了 14%3 jar cvfM test该命令与 2 结果类似,但在生成的中没有包含 META-INF/MANIFEST 文件,打包过程的信息也略有差别:增加:test/读入= 0 写出= 0存储了 0%增加:test/读入= 7 写出= 6压缩了 14%4 jar cvfm test运行结果与 2 相似,显示信息也相同,只是生成JAR 包中的META-INF/MANIFEST 内容不同,是包含了的内容5 jar tf在已经存在的情况下,可以查看中的内容,如对于 2 和 3 生成的分别应该此命令,结果如下;对于 2META-INF/META-INF/test/test/对于 3test/test/6 jar tvf除显示 5 中显示的内容外,还包括包内文件的详细信息,如:0 Wed Jun 19 15:39:06 GMT 2002 META-INF/86 Wed Jun 19 15:39:06 GMT 2002 META-INF/0 Wed Jun 19 15:33:04 GMT 2002 test/7 Wed Jun 19 15:33:04 GMT 2002 test/7 jar xf解开到当前目录,不显示任何信息,对于 2 生成的 ,解开后的目录结构如下:==|-- META-INF| `-- MANIFEST`-- test`jar xvf运行结果与 7 相同,对于解压过程有详细信息显示,如:创建:META-INF/展开:META-INF/创建:test/展开:test/9 jar uf在中添加了文件 ,此使用 jar tf 来查看可以发现中比原来多了一个manifest;这里顺便提一下,如果使用 -m 参数并指定文件,那么是作为清单文件 MANIFEST 来使用的,它的内容会被添加到 MANIFEST 中;但是,如果作为一般文件添加到 JAR 文件包中,它跟一般文件无异;10 jar uvf与 9 结果相同,同时有详细信息显示,如:增加:读入= 17 写出= 19压缩了 -11%4. 关于 JAR 文件包的一些技巧1 使用 unzip 来解压 JAR 文件在介绍 JAR 文件的时候就已经说过了,JAR 文件实际上就是 ZIP 文件,所以可以使用常见的一些解压 ZIP 文件的工具来解压 JAR 文件,如 Windows 下的 WinZip、WinRAR 等和 Linux 下的 unzip 等;使用 WinZip 和 WinRAR 等来解压是因为它们解压比较直观,方便;而使用 unzip,则是因为它解压时可以使用 -d 参数指定目标目录;在解压一个 JAR 文件的时候是不能使用 jar 的 -C 参数来指定解压的目标的,因为 -C 参数只在创建或者更新包的时候可用;那么需要将文件解压到某个指定目录下的时候就需要先将这具 JAR 文件拷贝到目标目录下,再进行解压,比较麻烦;如果使用 unzip,就不需要这么麻烦了,只需要指定一个 -d 参数即可;如:unzip -d dest/2 使用 WinZip 或者 WinRAR 等工具创建 JAR 文件上面提到 JAR 文件就是包含了 META-INF/MANIFEST 的 ZIP 文件,所以,只需要使用 WinZip、WinRAR 等工具创建所需要 ZIP 压缩包,再往这个 ZIP 压缩包中添加一个包含 MANIFEST 文件的 META-INF 目录即可;对于使用jar 命令的 -m 参数指定清单文件的情况,只需要将这个 MANIFEST 按需要修改即可;3 使用 jar 命令创建 ZIP 文件有些 Linux 下提供了 unzip 命令,但没有 zip 命令,所以需要可以对 ZIP 文件进行解压,即不能创建 ZIP 文件;如要创建一个 ZIP 文件,使用带 -M 参数的jar 命令即可,因为 -M 参数表示制作JAR 包的时候不添加MANIFEST 清单,那么只需要在指定目标 JAR 文件的地方将 .jar 扩展名改为 .zip 扩展名,创建的就是一个不折不扣的 ZIP 文件了,如将上一节的第3 个例子略作改动:jar cvfM test0Mi jar-文件 manifest-文件 -C 目录文件名 ...选项:-c 创建新的存档-t 列出存档内容的列表-x 展开存档中的命名的或所有的〕文件-u 更新已存在的存档-v 生成详细输出到标准输出上-f 指定存档文件名-m 包含来自标明文件的标明信息-0 只存储方式;未用ZIP压缩格式-M 不产生所有项的清单manifest〕文件-i 为指定的jar文件产生索引信息-C 改变到指定的目录,并且包含下列文件:如果一个文件名是一个目录,它将被递归处理;清单manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序;示例1:将两个class文件存档到一个名为 '' 的存档文件中:jar cvf示例2:用一个存在的清单manifest文件 'mymanifest' 将 foo/ 目录下的所有文件存档到一个名为 '' 的存档文件中:jar cvfm mymanifest -C foo/ .。
Java生成Class并打包成可执行Jar文件
Java生成Class并打包成可执行Jar文件共分两步:1. 生成Class文件,可以通过命令行来测试调用执行2. 将Class文件打包成Jar文件下面说明一下具体步骤:1.GeneXus中创建Procedure并配置属性2.编译之后进入web目录3.打开CMD命令行窗口,定位web目录4.通过java命令行执行生成的classCMD输入并执行代码java -cpgxclassR.jar;gxcommon.jar;log4j-core-2.11.2.jar;log4j-api-2.11.2.jar;commons-io-2.2. jar;joda-time-2.8.2.jar; com.testjava.atestjavacmd5.创建manifest.txt文件准备打包在web目录下创建文件manifest.txt,写入下列文本并保存Manifest-Version: 1.0Class-Path: gxclassR.jar gxcommon.jar log4j-core-2.11.2.jar log4j-api-2.11.2.jar commons-io-2.2.jar joda-time-2.8.2.jarMain-Class: com.testjava.atestjavacmd*最后有一行回车不能去掉6.通过jar命令打包jar文件CMD输入并执行代码"D:\Program Files\Java\jdk1.8.0_191\bin\jar.exe" cvfm testjavacmd.jar manifest.txt com\testjava\atestjavacmd.class com\testjava\GXcfg.class com\testjava\client.cfg"D:\Program Files\Java\jdk1.8.0_191\bin\jar.exe"是我本机jdk安装目录下的jar.exe 程序,按自己的环境修改7.在web目录下查看打包好的jar文件8.通过java命令测试执行jarCMD输入并执行代码java -jar testjavacmd.jar正确执行并输出信息:[2019/10/13 16:11:07.004]: [ATestJavaCmd] has been executed.9.示例XPZTestJavaCmd.zip(1.71 KB, 下载次数: 1)。
jar file和executable jar file -回复
jar file和executable jar file -回复jar文件是Java Archive(Java档案)的缩写,它是一种打包格式,用于存储Java类文件、资源文件和元数据信息。
通过将多个文件打包成一个jar文件,可以方便地将Java程序分发和部署到不同的环境中。
其中,executable jar file是指包含启动类的可执行jar文件,可以直接运行。
在本文中,我们将探讨jar文件和executable jar file的概念、用途以及创建过程。
我们将一步一步详细说明,帮助您全面了解这两种格式的Java 文件。
第一部分:概念首先,我们来了解一下jar文件的基本概念。
如前所述,jar文件是一种打包格式,可以用于存储Java类文件、资源文件和元数据信息。
与传统的zip文件相似,jar文件使用.zip扩展名,但其中包含的文件通常是Java 类文件而不仅仅是任意文件。
与普通的zip文件相比,jar文件具有一些特殊的属性。
首先,jar文件可以包含一个特殊的MANIFEST.MF文件,用于存储元数据信息和配置信息。
其次,jar文件的内容是压缩的,这意味着它可以减少网络传输和磁盘存储空间。
最后,jar文件可以通过Java虚拟机(JVM)直接执行,这样就可以方便地分发和部署Java程序。
executable jar file是一种特殊类型的jar文件,它包含一个可执行的启动类。
这意味着当双击或通过命令行方式运行executable jar file时,Java 虚拟机将自动执行指定的启动类。
这种格式特别适合独立的Java应用程序和可执行的工具。
第二部分:用途接下来,我们将讨论jar文件和executable jar file的用途。
首先,jar文件可以用于将Java类文件和依赖的库文件打包成一个单独的文件,方便分发和部署。
这对于开发者来说非常有用,因为他们可以将所有必需的文件打包到一个jar文件中,然后将其提供给其他人使用。