当前位置: 代码迷 >> 综合 >> java、javac、jar、javap
  详细解决方案

java、javac、jar、javap

热度:62   发布时间:2023-12-02 00:51:40.0

Java的基本指令参数

  • javac [-d 目录|-verbose] file
  • java [-classpath(cp) dir] file
  • jar -zcvf dir file
  • javap [-private§] file

javac命令

我们都知道javac命令用来编译文件
Snipaste_2019-07-27_23-08-58.jpg
**-d **:在javac后加-d .会把java文件放在指定的包下。
但当我们的java程序在某个包下时,如果还用javac 编译则会有
Snipaste_2019-07-27_23-32-00.jpg
-verbose:显示每个所加载的类和每个所编译的源文件的有关信息
Snipaste_2019-07-27_23-37-54.jpg

java命令

对于java命令,我们都知道它可以运行java程序
Snipaste_2019-07-27_23-42-27.jpg
java -classpath dir:指定输入.class文件的位置(可以联想到CLASSPATH环境变量)
Snipaste_2019-07-27_23-47-30.jpg

java命令与javac命令的一个小案例
Snipaste_2019-07-30_09-09-36.jpg

jar命令:打包.class文件

Snipaste_2019-07-27_23-50-35.jpg
如果有多个文件,用空格隔开
打包后的包内的所有文件如下:
Snipaste_2019-07-28_10-50-11.jpg
其中生成的文件/META-INF/MANIFEST.MF文件的内容格式及其含义如下:

Manifest-Version: 1.0
Created-By: 1.6.0_22(Sun Microsystems Inc.)
Class-Path: .
Main-Class: MianClassManifest-Version 指清单版本,默认生成Manifest-Version: 1.0
Created-By 指创建作者,默认生成Created-By: 1.8.0_74 (Oracle Corporation)
Class-Path 指主类所在路径
Main-Class 指程序的主类 main 方法的类。

运行可执行的jar包时,使用命令java -jar jar包名.jar即可运行jar包
注:在MANIFEST.MF中的Main-Class属性中必须指明mian方法的。

javap命令:反编译.class文件

Snipaste_2019-07-28_00-00-57.jpg
-c参数
为类中的每个方法打印反汇编代码,例如,包含Java字节码的指令。
Snipaste_2019-07-28_16-24-40.jpg

Java中的详细命令及参数可以在Oracle官网查看https://docs.oracle.com/javase/9/tools/javap.htm#JSWOR688

  相关解决方案