【高效编码】JDK自带的命令行工具的使用还用不清楚的地方?快来看看这篇文章吧!!!

简介: 您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧。小伙伴们有啥想看的,想问的,欢迎积极留言告诉我喔。

您好,我是码农飞哥,感谢您阅读本文!如果此文对您有所帮助,请毫不犹豫的一键三连吧。小伙伴们有啥想看的,想问的,欢迎积极留言告诉我喔。 上一篇文章我们介绍了IDEA的调试技巧【高效编码】关于IDEA调试的点点滴滴都在此文了。领导看了都说好!!!!。开发工具的熟练使用可以有效提高我们的效率,但是这还不够,还有JDK我们也要熟悉起来。所以这一篇文章来了,它主要是讲述JDK自带的各种命令行工具的使用。也是属于操作类的文章,简单易懂,掌握之后受益良多。

总览

JDK自带的命令工具都在C:\Program Files\Java\jdk1.8.0_60\bin 这个目录下,即JDK安装目录的bin目录下,这个里面有各种命令行工具,有用来监控虚拟机运行的命令,有用来故障排查的命令,还有一些基础命令。

下图是对本文即将介绍了几个工具命令以及它们的作用做的一个汇总表格。一共有6个命令。后面会详细的介绍每个命令的使用。

下面就分别详细介绍一下各个命令的使用吧,话不多说,让我们直入主题。

准备工作

为了测试方便,我们先准备一个用于测试的java源文件(即以.java为后缀的文件),上传到服务器上。上传了一个User.java文件。放在了/data/server/test-xiang 这个目录下,目录没有的话可以自行创建(目录可以不用相同,但需要的是一个新目录,方便后面查看效果)。

javac

首先粉墨登场的是我们的javac命令,这个命令作用是用于Java语言编译器,即将Java 源文件(.java文件)编译成一个类文件(.class文件)。

它的用法是:

javac <options> <source files>

用法非常简单,其中<options>是各种操作符,<source files> 是源文件。

可以通过javac -help命令查看各种操作符的功能描述。如下图所示:

举个栗子吧,就拿前面已经上传的User.java文件为例:

javac -g /data/server/test-xiang/User.java

执行该命令之后,我们看到该目录下生成了一个同名的User.class文件,这个文件就是我们源文件编译之后的类文件,所有的Java源文件必须先编译成类文件,才能被JDK执行。

javadoc

说完了javac命令之后,我们接下来看看javadoc命令,这个命令的作用就是生成API文档。其用法是:

javadoc [options] [packagenames] [sourcefiles] [@files]

其中,[options] 表示操作,[packagenames]表示包名,[sourcefiles]表示源文件(即.java文件) 同样的可以通过javadoc -help 查看各个操作的作用描述。

举个栗子:显示User.java中所有的public类和成员,生成相关的文档。

javadoc -public /data/server/test-xiang/User.java

执行该命令之后会生成如下文件:

javap

接下来介绍是javap 这个命令,这个命令的作用就是类文件反汇编器,主要是根据Java字节码文件反汇编为Java源代码文件。说白了,就是可以按需查看类文件的信息。其用法是:

javap <options> <classes>

<options> 是各种操作,<classes>是类文件, 同样的还是可以通过javap -help查看一下各种操作的解释吧!

举个栗子:比如我要显示类文件中所有公共成员(即被public修饰的方法和变量)

javap -public /data/server/test-xiang/User.class

jar

接下来介绍的是jar命令,这个命令的主要作用是创建和管理jar文件。它的用法是:

jar {ctxui}[vfmn0PMe] [jar-file] 
 [manifest-file] [entry-point] [-C dir] files ...

{ctxui} 表示这一部分可以输入 c,t,x,u,i 中的一个。

[vfmn0PMe] 表示可以输入vfmn0PMe中的多个,比如输入 vf 表示答应压缩信息,并指定压缩文件名

[jar-file] 可以设置jar的文件名。

我们可以通过命令jar -help 查看各个选项的功能描述,如下图所示:

这里有一个非常清晰的描述, 比如-c 命令就是创建新jar包,-f 就是指定jar的名称

比如:将两个类文件归档到一个名为classes.jar的档案中,可以输入如下命令:

jar cvf classes.jar  Foo.class Bar.class

再比如:将文件夹下已经有了User.java 和User.class 两个文件打包到一个jar文件中,那么可以通过jar命令将这两个文件打包

jar cvf test.jar  User.java User.class

执行命令之后,就可以看到目录下已经生成了一个名叫test.jar的文件。在对该文件进行解压看看,可以看到有User.jar文件和User.class文件。是不是非常的简单呀。

jar -xvf test.jar

java

接着就是介绍Java这个命令了,这个命令非常非常的重要,必须要画五角星重点掌握。这个命令的作用主要有两个。

一个是执行类(这里的类是指含有main函数的类),用法是:java [-options] class [args...]

一个是执行jar文件,用法是:java [-options] -jar jarfile [args...]

当然我们还可以通过java -help命令查看其他的操作命令。

举个栗子:

直接执行主类,如下有这样一个有main方法的主类,该主类没有包名。

public class JavaOptionTest {
    public static void main(String[] args){
        System.out.println("测试java命令的执行");
    }
}

如果我们要想在linux下直接运行该类的话,只需要步:

将源文件编译成类文件(.class文件)javac JavaOptionTest.java

通过java命令执行main函数java JavaOptionTes

我们可以看到控制台打印出来我们期待的结果。

那么问题来了,如果一个主类带有包名的话,那么该如何执行呢?首先需要进入包名所在父目录,就像下图中进入D:\workspace\java-base-demo\target\classes目录,然后带包名运行:

java com.jay.base.JavaOptionTest

在执行类中有的小伙伴可能会碰到类似这样的问题:

错误: 找不到或无法加载主类 com.jay.base.JavaOptionTest

这是因为在你当前的执行命令的目录下面找不到 com.jay.base这个路径,所以找不到JavaOptionTest类文件


执行jar包,如下在target目录下有一个springboot项目的jar直接通过java命令即可启动该项目。

java -jar testng-spring-boot-demo-0.0.1-SNAPSHOT.jar

延伸阅读

直接通过java命令启动jar包的话,有个问题就是当窗口连接关闭之后服务也就停了,即这样启动不是后台启动应用的。要想在后台启动服务还是需要通过nohup命令来启动服务

标准的启动命令是:

nohup java -jar testng-spring-boot-demo-0.0.1-SNAPSHOT.jar &

指定端口,指定运行内存的启动命令是:

nohup java -Xms1024m -Xmx2048m  -jar testng-spring-boot-demo-0.0.1-SNAPSHOT.jar --serve

这个命令表示指定初始堆内存(Xms)为1024mb,最大内存是2048mb,启动端口是9393。这样执行的话会在执行命令的目录下生成一个 nohup.out文件记录启动日志。当然我们也可以指定一个文件记录启动日志,如下命令:

nohup java -Xms1024m -Xmx2048m  -jar testng-spring-boot-demo-0.0.1-SNAPSHOT.jar --ser

就指定生成了log.file文件来记录启动日志。

总结

本文详细介绍了基础部分的各种命令行工具,作为一个Java程序猿熟练的掌握这些命令的使用还是很有必要的,我觉得这里最最重要的命令是java命令。希望本文对读者朋友们有所帮助。

相关文章
|
存储 监控 Java
性能监控之常见JDK命令行工具整理
我们在做性能分析的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行参数、运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore 文件)、堆转储快照(heapdump/hprof 文件)等。
302 2
性能监控之常见JDK命令行工具整理
|
运维 监控 数据可视化
Java生产环境性能监控与调优—基于JDK命令行工具的监控
Java生产环境性能监控与调优—基于JDK命令行工具的监控
742 0
Java生产环境性能监控与调优—基于JDK命令行工具的监控
|
SQL 算法 安全
五、JDK命令行工具jps、jstat、jmap、jstack、jhat、jinfo
一、jps,查看虚拟机进程的命令 参数说明 -q:只输出进程 ID -m:输出传入 main 方法的参数 -l:输出完全的包名,应用主类名,jar的完全路径名
532 0
|
运维 监控 数据可视化
面试官:你用过哪些JDK自带的命令行工具
面试官:你用过哪些JDK自带的命令行工具
面试官:你用过哪些JDK自带的命令行工具
|
存储 监控 Java
基于JDK命令行工具的监控
JVM的参数类型 JVM参数类型大体分为三种: 标准参数,基本每个版本的JVM都有的参数,比较稳定不变 X参数,非标准化的参数,每个JVM版本的都有些不一样,但是变化较小 XX参数,非标准化的参数,相对不稳定,每个JVM...
1226 1
|
Java 运维
java-基础-jdk命令行工具
监视虚拟机和故障处理工具 jps 显示虚拟机进程 jstat 收集虚拟机的运行数据 jinfo 显示虚拟机配置信息 jmap 显示虚拟机内存快照 jhat 分析内存快照,建立http服务,让用户可以在浏览器上的进行查看。
902 0
|
6月前
|
存储 Ubuntu 安全
在Ubuntu 16.04上安装openjdk-6/7/8-jdk的步骤
在整个安装过程中,你可能需要管理员权限,因此你可能要使用 `sudo` 来获取必要的权限。记得做完每一个步骤后,都要检查输出,以确保没有发生错误,并且每项操作都成功完成。如果在安装过程中遇到问题,查看 `/var/log/` 下的日志文件对于问题的解决可能是有帮助的。
459 21
|
6月前
|
IDE Ubuntu Java
在Ubuntu18.04安装兼容JDK 8的Eclipse集成开发环境的指南。
完成以上步骤后,您将在Ubuntu 18.04系统上成功安装并配置了Eclipse IDE,它将与JDK 8兼容,可以开始进行Java开发工作。如果遇到任何问题,请确保每一步骤都正确执行,并检查是否所有路径都与您的具体情况相匹配。
277 11
|
5月前
|
Ubuntu Java Android开发
在Ubuntu 18.04上安装与JDK 8兼容的Eclipse版本的步骤。
安装过程结束后,您就可以开始使用Eclipse来开发您的Java项目了,并且确保它与JDK 8兼容无误。这个过程涉及的是一个基本的安装流程,针对使用Java 8的用户,Eclipse的其他配置和插件安装根据个人开发环境和需求来定制。
423 0
|
8月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
452 41