JDK中的 javac / java / jar 命令

测试项目test

结构:

Test.java:

package cn.pxl;
import en.B;
public class Test{
    public static void main(String args[]){
        System.out.println("this is cn.pxl.Test class");
        A.m1();    
        B.m1();
        A.m2();
    }
}

A.java:

package cn.pxl;
public class A{
    public static void m1(){
        System.out.println("this is cn.pxl.A method m1");    
    }   
    
    /**
     * @deprecated will be deleted...
     */
    public static void m2(){
        System.out.println("this is cn.pxl.A method 2");
    }
}

B.java:

package en;
public class B{
    public static void m1(){
        System.out.println("this is B.m1");   
    }    
}

 

javac 命令

javac命令用于编译Java源文件,语法如下:
 
   
javac [ options ] [ sourcefiles ]

options的主要选项:

-sourcepath <路径>  :指定Java源文件的路径。

-d <路径>       :指定编译生成的类文件存放目录,该目录必须存在。如果没有指定目录,生成类文件和源文件放在同一目录下。

-classpath <路径>     :设定要搜索类的路径。可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有在CLASSPATH里面的设定。

-deprecation                :输出源程序中使用了不鼓励使用(Deprecated)的API的具体位置。

-verbose                     :输出编译器运行中的详细工作信息。

 

打开cmd命令窗口,切换目录到test目录下。

编译test到classes目录下:

 
   
javac - sourcepath . / src - d . / classes . / src / cn / pxl /* .java

编译时输出使用了Deprecated的API的位置:

 
   
javac - sourcepath . / src - d . / classes - deprecation . / src / cn / pxl /* .java

输出详细编译信息:

 
   
javac - sourcepath . / src - d . / classes - verbose . / src / cn / pxl /* .java

说明:

--javac在编译源文件时,会先对编译源文件中关联的其它文件。

--可以同时指定多个要编译的源文件,用空格分隔。

--如果编译文件已存,且源文件没有更新,则不会重新编译该源文件。

 

java命令

java命令用于运行Java程序,它会启动Java虚拟机,Java虚拟机加载相关的类,然后调用主程序main()方法。

-classpath <路径>    :设定要搜索的类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有的CLASSPATH的设定。多个用‘;’分隔。

-verbose                 :输出运行时详细工作信息。

-jar                        :指定可执行的jar包。

 

在/test目录下运行编译后的Test程序:

 
   
java - classpath . / classes Test

 

jar命令

jar命令能够把Java应用打包成一个文件,这个文件的扩展名为.jar,称为JAR文件。JAR 文件非常类似 ZIP 文件。准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。jar命令可以打包任意文件,但通常情况下我们只把编译后的.class文件打包成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 文件包的时候可用。   

 

把test的编译文件打包成jar包(注意,一定要在test/classes目录下执行命令):

 
   
jar - cvf .. / deploy / test.jar * . *

把包成功后就可以用下面java命令运行Test程序:

 
   
java - classpath .. / deploy / test.jar Test

(先删除classpath目录下的所有文件,)把test.jar包解压到当前目录(classpath)下:

 
   
java - xvf .. / deploy / test.jar

解压后,在当前目录下多了 META-INF/MANIFEST.MF 目录和文件,它用于描述JAR文件的信息。这就是jar和zip的区别所在。

 

创建可执行的jar包

用上诉javac命令,把Test源文件编译到classes目录下。在classes目录下创建一个Manifest.txt文件,内容如下:

 
   
Main - Class: cn.pxl.Test

(注意:要回车)

以上内容指定JAR包的主程序是cn.pxl.Test类。在classes目录下运行如下jar命令:

 
   
jar - cvfm .. / deploy / test.jar Manifest.txt * . *

这样创建了一个可执行的JAR包,用以下命令运行这个JAR包:

 
   
java - jar .. / deploy / test.jar

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/pengxl/archive/2010/12/10/1902082.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "Program Files/Java/JDK"是指Windows操作系统下的Java Development Kit(JDK)的安装目录。JDKJava开发工具包的缩写,它是用于编写、编译和运行Java程序的一套工具。 在Java开发JDK是非常重要的一个组件。它包含了Java编译器(javac)、Java虚拟机(JVM)以及一系列的开发工具(如JavaDoc、Java Debugging Tool等)。通过Java编译器,开发者可以将Java源代码编译为字节码文件,而Java虚拟机则负责将字节码文件解释执行。开发者在编写Java程序时,可以使用JDK提供的各种工具进行开发、调试和测试。 "Program Files/Java/JDK"是JDK在Windows系统的默认安装路径,当我们安装JDK时,它会自动将JDK文件和目录结构放置在这个路径下。在这个目录,我们可以到bin目录,其包含了各种可执行文件,如编译器、虚拟机等。除了bin目录,JDK还包含了其他重要的目录,如lib目录,其存放了Java API的类库文件。 在使用JDK进行Java开发时,我们需要将JDK的安装路径添加到系统的环境变量,这样我们就可以在任何地方使用JDK提供的工具和类库。通过配置环境变量,我们可以在命令直接运行Java编译器、虚拟机等工具,而无需手动进入JDK的安装目录。 总之,"Program Files/Java/JDK"是Java开发工具包(JDK)在Windows系统的默认安装路径。它是Java开发的基础,提供了编译、运行和调试Java程序所需的一系列工具和类库。 ### 回答2: "Program Files/Java/JDK" 是一个在计算机系统常见的文件路径,通常用于存储Java开发工具包(Java Development Kit,JDK)的安装文件JDK是一个由Java开发者使用的软件包,包含了编译器、调试器、开发文档和其他工具,用于开发、编译和运行Java程序。JDKJava应用程序开发的基础,它提供了开发Java程序所需的工具和程序库。 "Program Files" 是Windows操作系统的一个默认文件夹,用于存储安装在计算机上的程序文件。"Java" 是存储Java相关软件和文件文件夹,而"JDK"是存储Java开发工具包的特定文件夹。这个文件路径指的是JDK的安装位置。 安装JDKJava开发的第一步。在这个特定的文件路径下,你可以JDK的各个组件和文件。比如,你可以Java编译器(javac.exe)和Java虚拟机(java.exe)等可执行文件。你还可以到包含Java类库和jar文件文件夹。 在这个文件路径下,你还可以到其他一些重要的文件文件夹,比如"bin"文件夹,其包含了一些重要的工具,如Java编译器和虚拟机。还有"lib"文件夹,其包含了Java标准类库和一些扩展的库文件。 总的来说,"Program Files/Java/JDK" 是安装Java开发工具包的默认文件路径,里面包含了Java开发所需的各种组件和文件。通过安装JDK,开发者可以进行Java程序的开发、编译和运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值