java基本命令使用

javac

javac是JDK中的Java语言编译器。该工具可以将后缀名为.java的源文件编译为后缀名为.class的可以运行于Java虚拟机的字节码。
用法: javac <options> <source files>
参数说明

命令行解释
-g生成所有调试信息
-g:none不生成任何调试信息
-g:{lines,vars,source}只生成某些调试信息
-nowarn不生成任何警告
-verbose输出有关编译器正在执行的操作的消息
-deprecation输出使用已过时的 API 的源位置
-classpath <路径>指定查找用户类文件和注释处理程序的位置
-cp <路径>指定查找用户类文件和注释处理程序的位置
-sourcepath <路径>指定查找输入源文件的位置
-bootclasspath <路径>覆盖引导类文件的位置
-extdirs <目录>覆盖所安装扩展的位置
-endorseddirs <目录>覆盖签名的标准路径的位置
-proc:{none,only}控制是否执行注释处理和/或编译。
-processor [,,…]要运行的注释处理程序的名称; 绕过默认的搜索进程
-processorpath <路径>指定查找注释处理程序的位置
-parameters生成元数据以用于方法参数的反射
-d <目录>指定放置生成的类文件的位置
-s <目录>指定放置生成的源文件的位置
-h <目录>指定放置生成的本机标头文件的位置
-implicit:{none,class}指定是否为隐式引用文件生成类文件
-encoding <编码>指定源文件使用的字符编码
-source <发行版>提供与指定发行版的源兼容性
-target <发行版>生成特定 VM 版本的类文件
-profile <配置文件>请确保使用的 API 在指定的配置文件中可用
-version版本信息
-help输出标准选项的提要
-A关键字[=值]传递给注释处理程序的选项
-X输出非标准选项的提要
-J<标记>直接将 <标记> 传递给运行时系统
-Werror出现警告时终止编译
@<文件名>从文件读取选项和文件名

以递归方式编译给定目录下的所有java文件

cd jdk-source/jdk1.8
cp $JAVA_HOME/src.zip .
unzip src.zip -d src
find . -name "*.java" > sources.txt
mkdir rt-debug
javac -sourcepath . -d rt-debug -g @sources.txt > log.txt 2>&1
编译时出现报错信息:
./src/javax/swing/UIDefaults.java:53: 错误: 程序包sun.reflect.misc不存在
原因是:javac在编译时,并不引用 rt.jar,用的是一个特别的symbol table(lib/ct.sym),这个symbol table不包含所有的sun包的类
解决办法:使用 -XDignore.symbol.file,这样javac编译时就会引用rt.jar:
javac -XDignore.symbol.file
执行编译
javac -sourcepath . -d rt-debug -g @sources.txt -XDignore.symbol.file > log.txt 2>&1
cd rt-debug
jar cf0 rt_debug.jar *
把rt_debug.jar加到eclipse中的jre system libraries中,进入jdk源码调试的时候就能显示出变量的值了

jar

jar是JDK自带的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更改为指定的目录并包含以下文件

将文件打包成jar文件

jar cf0 rt_debug.jar *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值