一.jdk目录结构
不同版本之间的目录结构可能会有些不同
目录名称 | 说明 |
---|---|
bin | 该路径下存放了JDK的各种工具命令即JDK开发工具的可执行文件,其中这些可执行文件都是二进制的,java和javac就放在这个目录里 |
conf | 该路径下存放了JDK的相关配置文件 |
db | db目录是一个小型的数据库,从JDK6.0开始,java中引入了一个新的成员javaDB,这是一个纯java实现、开源的数据库管理系统 |
include | 该路径下存放了一些平台特定的头文件,其中C语言的头文件支持Java本地接口和Java虚拟机调试程序接口的本地编程技术 |
jmods | 该路径下存放了JDK的各种模块 |
legal | 该路径下存放了JDK各模块的授权文档 |
lib | 该路径下存放了JDK工具的一些补充JAR包 |
jre(Java runtime environment) | Java运行时环境,该目录路径下安装的就是运行Java程序所必须的JRE环境 |
二.jdk中bin目录下运行文件说明
命令 | 说明 |
---|---|
java | 运行java程序,运行.class文件 |
javac | 编译Java程序,生成.class文件 |
javaw | 该功能跟java命令相对的,可以运行.class文件,主要用来执行图形界面的java程序运行java命令时,会出现并保持一个console窗口,程序中的信息可以通过System.out在console内输出,而运行javaw,开始时会出现console,当主程序调用之后,console就会消失;javaw 大多用来运行GUI程序 |
javah | C头文件和Stub文件生成器。javah从Java类生成C头文件和C源文件。这些文件提供了连接胶合,使Java和C代码可进行交互 |
javap | Java类文件解析器。javap命令用于解析类文件。其输出取决于所用的选项。若没有使用选项,javap将输出传递给它的类的public域及方法。javap将其输出到标准输出设备上 |
javadoc | Java API文档生成器从Java源文件生成API文档HTML页 |
jconsole | J2SE监测和管理控制台—一个同JMX兼容的监测Java虚拟机的图形工具。其能够监视当地或者远程的Java虚拟机 |
jps | Java Virtual Machine Process Status Tool。java虚拟机进程状态工具—在目标系统上列出装备有HotSpot Java的虚拟机。是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况 |
jstack | 1. jstack命令用于打印指定Java进程、核心文件或远程调试服务器的Java线程的Java堆栈跟踪信息。2. jstack命令可以生成JVM当前时刻的线程快照。线程快照是当前JVM内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。3. 语法:jstack [ options ] pid |
jstat | java虚拟机统计监视工具—附加到一个装备了HotSpot的java虚拟机上来采集并且记录性能统计情况 |
jstatd | java虚拟机的jstat守护程序—启动一个RMI服务器程序来监视各个HotSpot java虚拟机的创建和中止。并且提供了一个访问远程监视工具接入的接口 |
jar | 操作jar包的工具 |
三.Java命令详解
运行java程序,运行.class文件(运行的时候不要带后缀)
用法:
java [-options] class [args…] (执行类)
java [-options] -jar jarfile [args…] (执行 jar 文件)
(一).系统参数
1.标准参数(-):所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
参数 | 说明 |
---|---|
-d32 | 使用 32 位数据模型 (如果可用) |
-d64 | 使用 64 位数据模型 (如果可用) |
-server | 选择 “server” VM,默认 VM 是 server. |
-cp | <目录和 zip/jar 文件的类搜索路径> |
-classpath | <目录和 zip/jar 文件的类搜索路径>,用 ; 分隔的目录, JAR 档案和 ZIP 档案列表, 用于搜索类文件。 |
-D<名称>=<值> | 设置系统属性 |
-verbose:[class | gc |
-version | 输出产品版本并退出 |
-version:<值> | 警告: 此功能已过时, 将在未来发行版中删除。需要指定的版本才能运行 |
-jre-restrict-search ` | ` -no-jre-restrict-search |
-? -help | 输出此帮助消息 |
-X | 输出非标准选项的帮助 |
`-ea[:… | :]<br> -enableassertions[:… |
`-da[:… | :]<br> -disableassertions[:… |
`-esa | -enablesystemassertions` |
-dsa | -disablesystemassertions |
-agentlib:<libname>[=<选项>] | 加载本机代理库 , 例如 -agentlib:hprof。另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help |
-agentpath:<pathname>[=<选项>] | 按完整路径名加载本机代理库 |
-javaagent:<jarpath>[=<选项>] | 加载 Java 编程语言代理, 请参阅 java.lang.instrument |
-splash:<imagepath> | 使用指定的图像显示启动屏幕 |
说明:
有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html
常用命令:
安装完jdk后查看版本信息:java -version
2.非标准参数(-X):默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
参数 | 说明 |
---|---|
-Xmixed | 混合模式执行 (默认) |
-Xint | 仅解释模式执行 |
-Xbootclasspath:<用 ; 分隔的目录和 zip/jar 文件> | 设置搜索路径以引导类和资源 |
-Xbootclasspath/a:<用 ; 分隔的目录和 zip/jar 文件> | 附加在引导类路径末尾 |
-Xbootclasspath/p:<用 ; 分隔的目录和 zip/jar 文件> | 置于引导类路径之前 |
-Xdiag | 显示附加诊断消息 |
-Xnoclassgc | 禁用类垃圾收集 |
-Xincgc | 启用增量垃圾收集 |
-Xloggc:<file> | 将 GC 状态记录在文件中 (带时间戳) |
-Xbatch | 禁用后台编译 |
-Xms<size> | 设置初始 Java 堆大小 |
-Xmx<size> | 设置最大 Java 堆大小 |
-Xss<size> | 设置 Java 线程堆栈大小 |
-Xprof | 输出 cpu 配置文件数据 |
-Xfuture | 启用最严格的检查, 预期将来的默认值 |
-Xrs | 减少 Java/VM 对操作系统信号的使用 (请参阅文档) |
-Xcheck:jni | 对 JNI 函数执行其他检查 |
-Xshare:off | 不尝试使用共享类数据 |
-Xshare:auto | 在可能的情况下使用共享类数据 (默认) |
-Xshare:on | 要求使用共享类数据, 否则将失败。 |
-XshowSettings | 显示所有设置并继续 |
-XshowSettings:all | 显示所有设置并继续 |
-XshowSettings:vm | 显示所有与 vm 相关的设置并继续 |
-XshowSettings:properties | 显示所有属性设置并继续 |
-XshowSettings:locale | 显示所有与区域设置相关的设置并继续 |
说明:
-X 选项是非标准选项, 如有更改, 恕不另行通知。
四.jar命令详解
操作jar(Java Archive File)的工具
用法: 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 | 更改为指定的目录并包含以下文件 |
-c | 创建新档案 |
说明:
如果任何文件为目录, 则对其进行递归处理。清单文件名, 档案文件名和入口点名称的指定顺序与 ‘m’, ‘f’ 和 ‘e’ 标记的指定顺序相同。
示例:
示例 1: 将两个类文件归档到一个名为 classes.jar 的档案中:jar cvf classes.jar Foo.class Bar.class
示例 2: 使用现有的清单文件 ‘mymanifest’ 并将 foo/ 目录中的所有文件归档到 ‘classes.jar’ 中:jar cvfm classes.jar mymanifest -C foo/ .
常用命令:
jar包解压后,如需重新压缩,可以使用命令:jar cvf xxx.jar *
五.java -jar命令详解
设置参数有两种方式:1.-Dname=value 2.- -name=value(两条短线中间没有空格)
参数 | 说明 |
---|---|
server.port | 端口号 |
file.encoding | 文件编码 |
spring.config.location | spring配置文件位置 |
spring.profiles.active | 指定配置文件 |
常用命令:
直接启动jar包:java -jar xxx.jar
指定端口号启动jar包:java -jar xxx.jar -Dserver.port=8080