Java常用命令

Java 常用命令

Javac 编译指令

# 语法格式
javac <options> <source files>
    -d <目录>          指定放置生成的类文件的位置
    -s <目录>          指定放置生成的源文件的位置
    -g        添加调试信息
    -g:none 不生成任何调试信息
    -g:{lines,vars,source} 只生成某些调试信息
    -nowarn    不生成任何警告
    -verbose 输出编译时的正在执行的操作
    -encoding <编码>       指定源文件使用的字符编码
     -source <发行版>       提供与指定发行版的源兼容性
     -target <发行版>       生成特定 VM 版本的类文件
    version          版本信息
     -help            输出标准选项的提要
    -deprecation        输出使用已过时的 API 的源位置
    -cp/-classpath <路径>      指定查找用户类文件,将覆盖 环境变量 CLASSPATH
    -sourcepath <路径> 指定待编译文件的依赖文件
    -bootclasspath <路径>    覆盖引导类文件的位置
    -extdirs <目录>       覆盖所安装扩展的位置
    -endorseddirs <目录>    覆盖签名的标准路径的位置
    -proc:{none,only}     控制是否执行注释处理和/或编译
    -processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程
    -processorpath <路径>    指定查找注释处理程序的位置
    -implicit:{none,class}   指定是否为隐式引用文件生成类文件
    -A关键字[=值]        传递给注释处理程序的选项
    -X             输出非标准选项的提要
    -J<标记>           直接将 <标记> 传递给运行时系统
    -Werror           出现警告时终止编译

常用示例

# 文件结构
# /---test
#    /---Hello.java
#    /---test.java
# /---class

# 编译生成类文件
javac test.java

# 指定放置类文件路径
javac -d ./class/ test.java

Java 执行指令

# 语法格式
# 执行 class文件
    java <参数> class [传入class的参数]
# 或 执行jar包
    java <参数> -jar jarfile [传入class的参数]
  -d32     使用 32 位数据模型 (如果可用)
  -d64     使用 64 位数据模型 (如果可用)
  -server    选择 "server" VM
  -hotspot   是 "server" VM 的同义词 [已过时]
         默认 VM 是 server.
 
  -cp <目录和 zip/jar 文件的类搜索路径>
  -classpath <目录和 zip/jar 文件的类搜索路径>
         用 ; 分隔的目录, JAR 档案
         和 ZIP 档案列表, 用于搜索类文件。
  -D<name>=<value>
         设置系统属性
  -verbose[:class|gc|jni]
         启用详细输出
  -version   输出产品版本并退出
  -version:<value>
         需要指定的版本才能运行
  -showversion 输出产品版本并继续
  -jre-restrict-search | -no-jre-restrict-search
         在版本搜索中包括/排除用户专用 JRE
  -? -help   输出此帮助消息
  -X      输出非标准选项的帮助
  -ea[:<packagename>...|:<classname>]
  -enableassertions[:<packagename>...|:<classname>]
         按指定的粒度启用断言
  -da[:<packagename>...|:<classname>]
  -disableassertions[:<packagename>...|:<classname>]
         禁用具有指定粒度的断言
  -esa | -enablesystemassertions
         启用系统断言
  -dsa | -disablesystemassertions
         禁用系统断言
  -agentlib:<libname>[=<options>]
         加载本机代理库 <libname>, 例如 -agentlib:hprof
         另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
  -agentpath:<pathname>[=<options>]
         按完整路径名加载本机代理库
  -javaagent:<jarpath>[=<options>]
         加载 Java 编程语言代理, 请参阅 java.lang.instrument
  -splash:<imagepath>
         使用指定的图像显示启动屏幕

常用示例

# 文件结构
# /---Hello
#    /---Hello.java
# /---class
#    /---Hello.class

# 执行java程序
java Hello

# 执行一个jar包程序

Jar 打包指令

# 语法格式
用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项:
    -c  创建新档案
    -t  列出档案目录
    -x  从档案中提取指定的 (或所有) 文件
    -u  更新现有档案
    -v  在标准输出中生成详细输出
    -f  指定档案文件名
    -m  包含指定清单文件中的清单信息
    -n  创建新档案后执行 Pack200 规范化
    -e  为捆绑到可执行 jar 文件的独立应用程序
        指定应用程序入口点
    -0  仅存储; 不使用任何 ZIP 压缩
    -P  保留文件名中的前导 '/' (绝对路径) 和 ".." (父目录) 组件
    -M  不创建条目的清单文件
    -i  为指定的 jar 文件生成索引信息
    -C  更改为指定的目录并包含以下文件

# 如果任何文件为目录, 则对其进行递归处理。
# 清单文件名, 档案文件名和入口点名称的指定顺序
# 与 'm', 'f' 和 'e' 标记的指定顺序相同。

常用示例

# 文件结构

# /---Hello
#   /---Hello.class

# 创建一个jar包
jar cvf Hello.jar Hello.class

# 创建一个jar包,并指定入口点
jar cvfe Hello.jar Hello Hello.class

Javap 反编译器

# 语法格式
javap <参数> <classes>
  -help  --help  -?        输出此用法消息
  -version                 版本信息
  -v  -verbose             输出附加信息
  -l                       输出行号和本地变量表
  -public                  仅显示公共类和成员
  -protected               显示受保护的/公共类和成员
  -package                 显示程序包/受保护的/公共类
                           和成员 (默认)
  -p  -private             显示所有类和成员
  -c                       对代码进行反汇编
  -s                       输出内部类型签名
  -sysinfo                 显示正在处理的类的
                           系统信息 (路径, 大小, 日期, MD5 散列)
  -constants               显示最终常量
  -classpath <path>        指定查找用户类文件的位置
  -cp <path>               指定查找用户类文件的位置
  -bootclasspath <path>    覆盖引导类文件的位置

常用示例

# 反汇编
javap -c Hello.class

# 显示所有类和其成员
javap -p Hello.class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值