精华内容
下载资源
问答
  • linux服务器上没有jar命令
    千次阅读
    2021-05-10 08:28:34

    在linux服务器上用jar命令解压jar包时,提示找不到jar命令。

    但是用java -version查看jdk版本,又可以显示出jdk版本。

    echo $JAVA_HOME查看环境变量路径,找不到。

    查找jdk安装目录:

    (网上搜到的方法:https://www.linuxidc.com/Linux/2015-08/122353.htm)

    which java

    首先要申明一下which java是定位不到安装路径的。which java定位到的是java程序的执行路径。网上的资料都是人云亦云,完全不去思考。那么怎么定位到java的安装路径呢?下面我们来看看例子吧,如下所示:

    [root@localhost ~]# java -version

    java version "1.7.0_65"

    OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)

    OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

    [root@localhost ~]# which java

    /usr/bin/java

    [root@localhost ~]# ls -lrt /usr/bin/java

    lrwxrwxrwx. 1 root root 22 Aug 17 15:12 /usr/bin/java -> /etc/alternatives/java

    [root@localhost ~]# ls -lrt /etc/alternatives/java

    lrwxrwxrwx. 1 root root 46 Aug 17 15:12 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

    [root@localhost ~]#

    [root@localhost ~]# cd /usr/lib/jvm

    [root@localhost jvm]# ls

    java-1.6.0-openjdk-1.6.0.0.x86_64 java-1.7.0-openjdk-1.7.0.65.x86_64 jre jre-1.6.0 jre-1.6.0-openjdk.x86_64 jre-1.7.0 jre-1.7.0-openjdk.x86_64 jre-openjdk

    查看这些文件夹下面的内容,发现服务器只是安装了jre,并没有安装jdk,而jar命令是jdk中的,不是jre中的。

    解决办法只能安装下jdk了。

    如果安装了jdk,有jar命令,只是没加到环境变量中,可以通过以下方式进行添加。

    在/usr/bin目录下创建jar的软连接。

    [luopu@TESTWEB1_13 ~]$cd /usr/bin

    [root@TESTWEB1_13 ~]#ln -s  /opt/freeware/old/jdk1.7.0_79/bin/jar jar

    添加后,运行jar,看是否成功。

    更多相关内容
  • maven项目发布生成可运行的jar文件,发布到服务器直接运行
  • 用java –jar 命令运行Jar

    千次阅读 2021-02-28 17:16:29
    学会如何写一段转换jar包的程序,将你的jar包转换成你能使用java -jar 命令运行jar包或象在windows系统上那样通过双击来运行jar包。你可以很容易地将一个应用的所有的类和资源打包到一个jar文件中去。事实上,这只是...

    摘要

    这个技巧阐明了如何不直接处理清单文件而将一个不能运行jar包转换成一个可以执行的jar包。学会如何写一段转换jar包的程序,将你的jar包转换成你能使用java -jar 命令运行jar包或象在windows系统上那样通过双击来运行jar包。

    你可以很容易地将一个应用的所有的类和资源打包到一个jar文件中去。事实上,这只是打包的一个原因。另一个原因是让用户很容易地执行包中的应用。那么在java的世界里,为什么jar是第二类公民――仅仅用作打包――当他们能成为第一类公民的时候,能和本地执行程序一样吗?

    如果想执行jar文件,可以使用java命令的-jar选项。例如,你有一个可以运行的myjar.jar文件。因为该文件是可以执行的,所以你可以用如下命令执行之:java –jar myjar.jar。此外,安装在windows JRE将会把jar文件和JVM关联起来,以便通过双击来运行jar应用。

    现在的问题是:如何把jar做成可以运行的包?

    清单文件和主类条目

    在大多数jar文件中,在目录META-INF里有个叫MANIFEST.MF的文件。在该文件中,有一个叫Main-Class的特殊条目,它说明了java -jar命令执行的类。

    问题是你必须正确地在清单文件中加入这个特殊的条目――它必须是在特定的位置和特定的格式。可是,好多人不喜欢修改配置文件。

    用API修改改配置

    从java1.2之后,一个叫java.util.jar的包可以操作jar文件(注:它架构在java.util.zip包之上)。Jar包能让你通过Manifest类很容易地操作专门的清单文件。

    让我们使用这些API写一个程序。首先,这个程序必须知道三件事:

    我们想让它执行的jar文件;

    我们想执行的main类(这个文件必须存在于jar包中);

    我们要输出的新jar包的名称,因为不是简单地覆盖原文件;

    编写代码

    上面的列表将组成我们程序的参数。在这里,让我们选择一个合适名字,MakeRunnable咋样?

    检查送入main的参数

    假设我们的main入口是标准的main(String[])方法。我们首先应该检查程序的参数:

    if (args.length != 3) {

    System.out.println("Usage: MakeJarRunnable "

    + "

    ");

    System.exit(0);

    }

    由于对后面的程序执行非常重要,一定要注意这个参数列表是如何解释的。参数的顺序和内容不是一成不变的;如果你改变了它们,记得要修改其它代码。

    存取jar和它的清单文件

    首先,我们必须创建一些知道jar和清单文件的对象:

    //创建JarInputStream对象,获取它的清单

    JarInputStream jarIn = new JarInputStream(new FileInputStream(args[0]));

    Manifest manifest = jarIn.getManifest();

    if (manifest == null) {

    //如果清单不存在

    manifest = new Manifest();

    }

    设置Main类的属性

    我们把Main-Class条目放到清单文件里main属性部分。一旦我们从mainfest对象中得到这个属性集,我们就能设置合适的main类。然而,如果Main-Class属性存在于原始的JAR文件中怎么办?这个程序仅仅打印出一个警告信息并退出。或许,我们可以添加一个命令行参数告诉程序使用新值而不是使用以前的一个:

    Attributes a = manifest.getMainAttributes();

    String oldMainClass = a.putValue("Main-Class", args[1]);

    //如果旧值存取,显示提示信息并退出

    if (oldMainClass != null) {

    System.out.println("Warning: old Main-Class value is: "

    + oldMainClass);

    System.exit(1);

    }

    输出新的JAR包

    我们需要创建一个新的jar文件,因此我们必须使用JarOutputStream类。注意:我们必须确保输出文件和输入文件不相同。作为可选方案,应该考虑如果两个文件同名,程序应该提示用户是否覆盖原始文件。我将这个作为练习留给读者。下面是代码。

    System.out.println("Writing to " + args[2] + "...");

    JarOutputStream jarOut = new JarOutputStream(new FileOutputStream(args[2]),  manifest);

    我们必须将输入jar中每一个条目写到输出jar文件中去,因此,在所有的条目上进行枚举:

    //为了从输入中转移数据而创建读缓存

    byte[] buf = new byte[4096];

    //枚举所有条目

    JarEntry entry;

    while ((entry = jarIn.getNextJarEntry()) != null) {

    //排除旧jar文件中的清单文件

    if ("META-INF/MANIFEST.MF".equals(entry.getName())) continue;

    //把条目写到输出jar文件中去

    jarOut.putNextEntry(entry);

    int read;

    while ((read = jarIn.read(buf)) != -1) {

    jarOut.write(buf, 0, read);

    }

    jarOut.closeEntry();

    }

    //刷新和关闭所有的流

    jarOut.flush();

    jarOut.close();

    jarIn.close();

    完成程序

    当然,我们必须将这些代码放到一个类中的main方法中,以及引入一些需要的包。资源一节提供了完整的程序。

    用法例子

    让我们用一个例子说明如何使用这个程序。假设你有一个main入口在叫做HelloRunnableWorld(类全名)类之中的应用,以及你已经创建了一个叫做myjar.jar的jar包,它包含了整个应用。在这个包上运行MakeJarRunnable,如下所示:

    java MakeJarRunnable myjar.jar HelloRunnableWorld myjar_r.jar

    此外,如前所述,注意我是如何安排参数列表顺序的。如果你忘记了顺序,运行一下这个不带参数的程序,它将会显示一个用法信息。

    试着用java -jar命令运行myjar.jar文件,之后在myjar_r.ja文件上。注意他们的不同!完成之后,研究在每一个jar包中的清单文件(META-INF/MANIFEST.MF)。

    建议:试着将MakeJarRunnable制作成一个可以运行的Jar文件!

    用它处理你想运行的jar包

    通过双击或者使用简单的命令运行一个jar包,总是要比把它放到 gagaghost

    展开全文
  • Java 之使用 jar 命令打包

    千次阅读 2021-04-07 10:40:04
    为何打包(jar包)?为了项目的部署和发布,你的程序可能使用很多个类,把这些类和他们的目录一起压缩到一个文件中给别人,可以方便使用,通常在打包时候,会在里面加上部署的相关信息。打包实际上就是把代码和依赖...

    Java 之使用 jar 命令打包

    为何打包(jar包)?为了项目的部署和发布,你的程序可能使用很多个类,把这些类和他们的目录一起压缩到一个文件中给别人,可以方便使用,通常在打包时候,会在里面加上部署的相关信息。打包实际上就是把代码和依赖的东西压缩在一起,变成后缀名为. jar包。

    【jar命令和jar包(jar文件)

    jar 命令(也称为jar工具)是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe。可以使用jar命令创建、更新、提取和列出jar文件的内容。jar包(也称为jar文件),是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包,使用ZIP査看器(如WinZip)査看它。jar文件还包含META-INF目录,用于存储包和扩展配置数据,包括安全性版本控制、扩展和服务。
    如果有很多.class文件(和其它文件),散落在各层目录中,肯定不便于管理。如果能把它们打一个jar包,变成一个文件,就方便多了。】

    jar包和Manifest文件

    jar包(文件)就是 Java Archive File(Java档案[归档]文件),是 Java 的一种文件格式,可将多个文件组合成一个文件。一个JAR文件由一系列采用Zip压缩格式的文件构成,同时还有一张“清单(Manifest)”,对所有这些文件进行了描述。JDK提供的许多类,也是以jar包的形式提供的。

    jar包用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。jar文件中有一个特定目录——META-INF,其中包含特殊的文件——MANIFEST.MF,用来定义扩展与档案打包相关数据信息,运行时向JVM提供应用程序的有关数据信息。

    清单(Manifest)文件格式规则:

    1.文件中的内容以键值对的形式出现,键值对之间采用"冒号和空格"进行分隔(注意:冒号后的空格必须有,不然格式有错误).

    2.每行最多72个字符,换行继续必须以空格开头 。

    3. Class-Path指定引用jar包的目录。调用多个jar时,每一个用空格(由一个或多个空格)隔开,不是逗号或分号,一行写不下(超过72个字符),从第二行开始,每行开头要至少一个空格。如:

    Class-Path: lib/tools.jar lib/guava-r09.jar lib/guice-2.0.jar 

     lib/jakarta.commons.lang-2.2.jar

    4. 文件的最后必需要空行,而且必须顶格。

    更详细的说明,参考oracle提供的文档:http://docs.oracle.com/javase/1.5.0/docs/guide/jar/jar.html

    一个简单的Manifest文件示例:

    其中:

    Manifest-Version

    用来定义manifest文件的版本,例如:Manifest-Version: 1.0

    Created-By

    声明该文件的生成者,这行信息没什么用

    Main-Class

    定义jar文件的入口类,如果 JAR 文件被用作可执行的应用程序,那么应用程序需要告诉 Java 虚拟机入口点位置,任意包含 public static void main(String[] args) 方法的类即为入口点。该信息由文件头 Main-Class 提供,基本格式如下:

    Main-Class: classname

    classname值可由应用程序的入口点代替。


     

     jar 命令介绍

    当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令打包了。

    在cmd中,可以使用jar --help 或 ar -h 获取详细信息。

    JDK9之后引入了模块化的概念,所以JDK9之后jar命令有了比较大的变化,下面JDK11中的jar命令的用法:

    作为对照了解,给出JDK8中jar命令如下图:

    更详细的说明,参考oracle提供的文档(其中的数字为版本号):

    https://docs.oracle.com/javase/8/docs/technotes/tools/windows/jar.html#examples
    https://docs.oracle.com/en/java/javase/11/tools/jar.html
    https://docs.oracle.com/en/java/javase/12/docs/specs/man/jar.html

    使用 jar 命令打包,事先必须编译好需要打jar的class。(eclipse一般在bin,maven构建的在target/classes)

    例1、将当前目录所有的.class文件都打入 counter.jar包:
    jar -cvf  counter.jar *.class

    例2、将 bin 目录中的所有文件打入 counter.jar包:
    jar cvf counter.jar -C bin 

    例3、打包,把manifest文件插入JAR文件使用 m 选项,把指定文件名的manifest文件传入(这里是预先准备好的myapplication.mf ),用jar命令如下
    jar cvfm myapplication.jar myapplication.mf -C classdir

    将 -C classdir指定的路径下的全部内容,生成名为myapplication.jar的包,并将清单文件myapplication.mf的内容提取到META-INF/MANIFEST.MF文件中

    打包成可运行的jar包可直接通过命令“java -jar jar文件名”运行这个jar包
    或 用记事本编写一个批处理文件(扩展名为bat),内容为:java -jar pigGame.jar
    如想不显示(隐藏)黑窗口运行jar,批处理命令文件内容为:@start javaw -jar  jar文件名运双击批处理文件即可运行jar文件了。

    要打包成可运行的jar包,需要在MANIFEST.MF文件中使用Main-Class  指明 入口类(主类)。

    附录

    使用Eclipse导出向导生成jar包 可参见 https://blog.csdn.net/cnds123/article/details/80463293
     

    展开全文
  • linux下的jar命令

    千次阅读 2019-08-21 09:14:26
    制作可执行的JAR文件包及jar命令详解 常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件。通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了;而另一种是使用 ...

    制作可执行的JAR文件包及jar命令详解

       常常在网上看到有人询问:如何把 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/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。举个例子,如果我们具有如下目录结构的一些文件:

      ==

      `-- test

        `-- Test.class

    把它压缩成 ZIP 文件 test.zip,则这个 ZIP 文件的内部目录结构为:

      test.zip

      `-- test

        `-- Test.class

    如果我们使用 JDK 的 jar 命令把它打成 JAR 文件包 test.jar,则这个 JAR 文件的内部目录结构为:

      test.jar

      |-- META-INF

      |  `-- MANIFEST.MF

      `-- test

        `--Test.class

    2. 创建可执行的 JAR 文件包

    制作一个可执行的 JAR 文件包来发布你的程序是 JAR 文件包最典型的用法。

    Java 程序是由若干个 .class 文件组成的。这些 .class 文件必须根据它们所属的包不同而分级分目录存放;运行前需要把所有用到的包的根目录指定给 CLASSPATH 环境变量或者 java 命令的 -cp 参数;运行时还要到控制台下去使用 java 命令来运行,如果需要直接双击运行必须写 Windows 的批处理文件 (.bat) 或者 Linux 的 Shell 程序。因此,许多人说,Java 是一种方便开发者苦了用户的程序设计语言。

    其实不然,如果开发者能够制作一个可执行的 JAR 文件包交给用户,那么用户使用起来就方便了。在 Windows 下安装 JRE (Java Runtime Environment) 的时候,安装文件会将 .jar 文件映射给 javaw.exe 打开。那么,对于一个可执行的 JAR 文件包,用户只需要双击它就可以运行程序了,和阅读 .chm 文档一样方便 (.chm 文档默认是由 hh.exe 打开的)。那么,现在的关键,就是如何来创建这个可执行的 JAR 文件包。

    创建可执行的 JAR 文件包,需要使用带 cvfm 参数的 jar 命令,同样以上述 test 目录为例,命令如下:

    jar cvfm test.jar manifest.mf test

    这里 test.jar 和 manifest.mf 两个文件,分别是对应的参数 f 和 m,其重头戏在 manifest.mf。因为要创建可执行的 JAR 文件包,光靠指定一个 manifest.mf 文件是不够的,因为 MANIFEST 是 JAR 文件包的特征,可执行的 JAR 文件包和不可执行的 JAR 文件包都包含 MANIFEST。关键在于可执行 JAR 文件包的 MANIFEST,其内容包含了 Main-Class 一项。这在 MANIFEST 中书写格式如下:

    Main-Class: 可执行主类全名(包含包名)

    例如,假设上例中的 Test.class 是属于 test 包的,而且是可执行的类 (定义了 public static void main(String[]) 方法),那么这个 manifest.mf 可以编辑如下:

    Main-Class: test.Test 

    这个 manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且该行以一个回车符结束即可。创建了 manifest.mf 文件之后,我们的目录结构变为:

      ==

      |-- test

      |  `-- Test.class

      `-- manifest.mf

    这时候,需要到 test 目录的上级目录中去使用 jar 命令来创建 JAR 文件包。也就是在目录树中使用“==”表示的那个目录中,使用如下命令:

    jar cvfm test.jar manifest.mf test

    之后在“==”目录中创建了 test.jar,这个 test.jar 就是执行的 JAR 文件包。运行时只需要使用 java -jar test.jar 命令即可。

    需要注意的是,创建的 JAR 文件包中需要包含完整的、与 Java 程序的包结构对应的目录结构,就像上例一样。而 Main-Class 指定的类,也必须是完整的、包含包路径的类名,如上例的 test.Test;而且在没有打成 JAR 文件包之前可以使用 java  来运行这个类,即在上例中 java test.Test 是可以正确运行的 (当然要在 CLASSPATH 正确的情况下)。

    3. jar 命令详解

     

    jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar。它的运行需要用到 JDK 安装目录下 lib 目录中的 tools.jar 文件。不过我们除了安装 JDK 什么也不需要做,因为 SUN 已经帮我们做好了。我们甚至不需要将 tools.jar 放到 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.jar test

    该命令没有执行过程的显示,执行结果是在当前目录生成了 test.jar 文件。如果当前目录已经存在 test.jar,那么该文件将被覆盖。

    2) jar cvf test.jar test

    该命令与上例中的结果相同,但是由于 v 参数的作用,显示出了打包过程,如下:

    标明清单(manifest)

    增加:test/(读入= 0) (写出= 0)(存储了 0%)

    增加:test/Test.class(读入= 7) (写出= 6)(压缩了 14%)

    3) jar cvfM test.jar test

    该命令与 2) 结果类似,但在生成的 test.jar 中没有包含 META-INF/MANIFEST 文件,打包过程的信息也略有差别:

    增加:test/(读入= 0) (写出= 0)(存储了 0%)

    增加:test/Test.class(读入= 7) (写出= 6)(压缩了 14%)

    4) jar cvfm test.jar manifest.mf test

    运行结果与 2) 相似,显示信息也相同,只是生成 JAR 包中的 META-INF/MANIFEST 内容不同,是包含了 manifest.mf 的内容

    5) jar tf test.jar

    在 test.jar 已经存在的情况下,可以查看 test.jar 中的内容,如对于 2) 和 3) 生成的 test.jar 分别应该此命令,结果如下;

    对于 2)

    META-INF/

    META-INF/MANIFEST.MF

    test/

    test/Test.class

    对于 3)

    test/

    test/Test.class

    6) jar tvf test.jar

    除显示 5) 中显示的内容外,还包括包内文件的详细信息,如:

    0 Wed Jun 19 15:39:06 GMT 2002 META-INF/

    86 Wed Jun 19 15:39:06 GMT 2002 META-INF/MANIFEST.MF

    0 Wed Jun 19 15:33:04 GMT 2002 test/

    7 Wed Jun 19 15:33:04 GMT 2002 test/Test.class

    7) jar xf test.jar

    解开 test.jar 到当前目录,不显示任何信息,对于 2) 生成的 test.jar,解开后的目录结构如下:

      ==

      |-- META-INF

      |  `-- MANIFEST

      `-- test

        `--Test.class

    8) jar xvf test.jar

    运行结果与 7) 相同,对于解压过程有详细信息显示,如:

    创建:META-INF/

    展开:META-INF/MANIFEST.MF

    创建:test/

    展开:test/Test.class

    9) jar uf test.jar manifest.mf

    在 test.jar 中添加了文件 manifest.mf,此使用 jar tf 来查看 test.jar 可以发现 test.jar 中比原来多了一个 manifest。这里顺便提一下,如果使用 -m 参数并指定 manifest.mf 文件,那么 manifest.mf 是作为清单文件 MANIFEST 来使用的,它的内容会被添加到 MANIFEST 中;但是,如果作为一般文件添加到 JAR 文件包中,它跟一般文件无异。

    10) jar uvf test.jar manifest.mf

    与 9) 结果相同,同时有详细信息显示,如:

    增加:manifest.mf(读入= 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 test.jar -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 test.zip test

     

    展开全文
  • Jar命令使用

    万次阅读 2021-03-23 00:29:32
    文章目录1 jar命令详解2 命令使用3 Java执行jar命令 1 jar命令详解 命令: jar {ctxu}[vfm0M] [jar文件] [manifest文件] [-C 目录] 文件名 其中{ctxu}是jar命令的子命令,每次jar命令只能包含ctxu中的一个,它们...
  • hadoop jar 命令

    千次阅读 2021-11-25 09:56:42
    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar wordcount /user/root/email_log.txt /user/root/output2 ​ 统计单词平均长度 ​ hadoop jar $HADOOP_HOME/share/hadoop...
  • Java中jar命令详解

    万次阅读 2021-04-21 21:32:43
    做项目的时候我们肯定接触过很多jar包,那么jar包是什么呢?笔者了解到jar是java archive file 的简写。从名字就可以知道,它的应用与Java息息相关。...在命令行中键入jar命令之后,就会出现下图。里面详细的介绍了jar命...
  • java 打jar包 (JAR命令

    千次阅读 2020-04-07 16:36:25
    JAR命令 JAR命令参数: -c:创建一个jar包 -t:显示jar中的内容列表 -x:解压jar包 -u:添加文件到jar包中 -f:指定jar包的文件名 -v:生成详细的报造,并输出至标准设备 -e:为捆绑到可执行jar文件的独立应用程序...
  • 根据资料,查找jar包中yyy.xml文件的命令是:jar ftv xxx.jar |grep yyy.xml; 命令出错; 想了一下,grep应该是linux中的,Windows应使用find;再执行如下; 命令没有出错,但是还是有些问题;i.*文件是存在...
  • JAR打包的命令

    2019-03-01 16:49:37
    转载 博文链接:https://longyi-java.iteye.com/blog/245296
  • 进入 /usr/bin 目录 ...然后创建jar命令的软连接 sudo ln -s -f /home/jdk1.8/jdk1.8.0_211/bin/jar jar /home/jdk1.8/jdk1.8.0_211/bin/jar,是jdk的安装目录,后面的jar是别名。 验证是否成功,输入jar回车
  • jar命令的用法详解

    千次阅读 2018-07-23 00:14:12
    本文详细讲述了JAR命令的用法,对于大家学习和总结jar命令的使用有一定的帮助作用。具体如下: JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。当然也是有区别的,JAR包中有一个META-INF\...
  • 本文通过四种方法给大家介绍java命令执行jar包的方式,每种方法通过实例代码给大家详解,需要的朋友参考下吧
  • linux终端jar命令无法使用

    千次阅读 2018-08-08 09:11:45
    jar命令是和tar命令相对的,是Linux终端进行压缩和解压的命令。 在Linux终端中输入:jar cvmf ...时出现无法识别jar命令的bash提示。 解决方法: 1.确定安装了JDK 2.查询jar文件目录(sudo find / -name jar) ...
  • jar命令的解压与压缩

    千次阅读 2019-07-15 17:57:07
    jar命令的解压与压缩jar命令语法格式1、解压jar包2、创建jar包3、创建jar不包涵manifest文件4、创建jar包涵...jar命令语法格式 jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名… 其中{ctxu}这四个...
  • jar 命令替换jar包内文件(有层级文件) linux与windows下命令一致 a.jar包内文件: config/a.properties lib/b.jar c.txt 1、先cd 到jar 所在目录pwdJar,使用绝对路径无法替换文件。 2、替换config/a....
  • 使用jar命令替换jar包中指定文件

    千次阅读 2019-06-16 17:46:12
    一、jar命令用法 -c 创建新的归档文件  -t 列出归档目录和文件  -x 解压缩已归档的指定(或所有)文件  -u 更新现有的归档文件  -v 在标准输出中生成详细输出 / 提供更详细输出信息  -f 指定归档文件名...
  • 利用jar命令进行jar包的解压与打包

    万次阅读 2019-03-01 09:16:26
    在写Android平台下的打包工具,遇到需要将多个jar合并成一个jar的问题 ...1.解压命令 jar -xvf xx.jar 2、删除目录下所有的jar文件 del /F *.jar 3、合并所有.class文件至jar jar -cvfM xx.jar . ...
  • jar命令简介

    千次阅读 2017-04-26 19:25:01
    命令 创建jar文件 jar cf jar-file input-file(s) 查看jar文件 jar tf jar-file 抽取jar文件的内容 jar xf jar-file 从jar文件中抽取特定的内容 jar xf jar-file archived-file(s) 运行打包
  • 使用jar命令查看搜索jar包中的文件

    千次阅读 2019-07-16 10:11:18
    操作命令: 查找jar包中pom文件:jar ftv ks-web-1.0.3.jar |grep pom.xml ...jar 命令参数说明 用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 选项:...
  • 把java文件打包成.jar (jar命令详解)

    千次阅读 2019-03-07 15:51:19
    把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么:  用法:jar {ctxu}[vfm0Mi...
  • jar命令的使用教程

    千次阅读 2016-10-25 20:24:51
    在使用Jenkins进行远程部署时,需要先把Java文件打成jar包的形式。 例子①创建jarjar cf ggf10service.jar * 将当前目录下的所以文件打包生成ggf10service.jar,如果ggf10service.jar存在,则覆盖 ②创建并显示打包...
  • java打jar包的方式,jar命令,maven

    千次阅读 2019-06-24 22:47:00
    初学java编程,不知道怎么打包,或者说不知道打包的原理,本文来一探究竟 ...3. 通过jar命令打包 4. 把依赖打入jar包中 5. springboot项目打jar包 因为大部分时候是通过maven进行管理的,所以主要...
  • jar命令替换jar包文件

    千次阅读 2019-05-21 16:49:12
    --解压hello.jar至当前目录 jar xvf hello.jar --查询jar包中要替换的文件位置 jar -tvf gateway.jar | grep topjui.config.js --在当前jar包文件目录新建相同的路径并把要替换的文件放在目录下 mkdir -p BOOT-INF...
  • jar命令(一)-jar打包class文件

    万次阅读 2017-03-16 17:44:22
    本文通过一个例子:将几个简单的类打包,并标志主类 来介绍jar的常用命令
  • Java - 解压和打包Jar命令详解

    万次阅读 2019-06-20 21:23:10
    概览: 1. 解压包 jar -xvf test.jar 2. 压缩包 压缩指定文件: jar -cvf xxx.jar a.class b.class ...jar 命令有生成、查看、更新、解开 jar 包的作用,包含 META-INF/MANIFEST.MF 文件。它是 jar 包生成的...
  • linux下jar命令(运行jar包)

    千次阅读 2019-05-16 11:42:00
    直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉。 普通方式启动应用: java -jar jarPackageName.jar 1>system.log 2>&1 & 1:1 表示stdout标准输出,系统默认值是1(所以1>...
  • 命令 jar tvf FAMS-0.0.1-SNAPSHOT.war | grep prop ...jar 命令参数说明 用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 选项: -c 创建新档案 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 433,399
精华内容 173,359
关键字:

jar命令