当前位置:   article > 正文

Java 相关命令详解_ps -ef|grep java

ps -ef|grep java

jps

jps(Java Virtual Machine Process Status Tool) 是 JDK 1.5 提供的一个显示当前所有 java 进程 pid 的命令,简单实用,非常适合在 linux/unix 平台上简单察看当前 java 进程的一些简单情况。

我想很多人都是用过 unix 系统里的 ps 命令,这个命令主要是用来显示当前系统的进程情况(有哪些进程,及其 id)。 jps 也是一样,它的作用是显示当前系统的 java 进程情况。我们可以通过它来查看我们到底启动了几个 java进程和他们的进程号(每一个java程序都会独占一个java虚拟机实例),并可通过 opt 来查看这些进程的详细启动参数。

jps 存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到环境变量Path中。

常用选项

选项说明
-q只显示pid,不显示class名称,jar文件名和传递给main 方法的参数
-m输出传递给main方法的参数,在嵌入式jvm上可能是null
-l输出主类的全名,如果进程执行的是jar包,输出jar路径
-v输出JVM参数
-V输出通过.hotsportrc或-XX:Flags=指定的jvm参数
-Joption传递参数到vm,例如:-J-Xms512m

示例1,查看java进程:

[root@linux ~]# jps
23991 Jps
23789 BossMain
23651 Resin
  • 1
  • 2
  • 3
  • 4

注:jps命令有个地方很不好,似乎只能显示当前用户的java进程,要显示其他用户的还是只能用unix/linux的ps命令。

示例2,列出远程服务器192.168.0.77机器所有的jvm实例(采用rmi协议,默认连接端口为1099):

jps 192.168.0.77 
  • 1

注:sudo jps看到的进程数量最全


参考文章:
Linux常用命令大全

javac

javac 命令用于编译 java 源码文件

语法格式:

javac [ options ] [ sourcefiles ] [ @files ]

参数可按任意次序排列。

  • options 命令行选项
  • sourcefiles 一个或多个要编译的源文件
  • @files 一个或多个对源文件进行列表的文件

有两种方法可将源代码文件名传递给 javac:

  • 如果源文件数量少,在命令行上列出文件名即可

  • 如果源文件数量多,则将源文件名列在一个文件中,名称间用空格或换行符来进行分隔。然后在 javac 命令行中使用该列表文件名,文件名前冠以 @ 字符

查找类型

当编译源文件时,编译器常常需要它还没有识别出的类型的有关信息。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要其类型信息。这包括在源文件中没有明确提及、但通过继承提供信息的类和接口。

例如,当扩展 java.applet.Applet 时还要用到 Applet 的祖先类:java.awt.Paneljava.awt.Containerjava.awt.Componentjava.awt.Object

当编译器需要类型信息时,它将查找定义类型的源文件或类文件。编译器先在自举类及扩展类中查找,然后在用户类路径中查找。用户类路径通过两种途径来定义:通过设置 CLASSPATH 环境变量或使用 -classpath 命令行选项。(有关详细资料,请参阅设置类路径)。如果使用 -sourcepath 选项,则编译器在 sourcepath指定的路径中查找源文件;否则,编译器将在用户类路径中查找类文件和源文件。可用 -bootclasspath-extdirs 选项来指定不同的自举类或扩展类;参阅下面的联编选项。

javac 对各种搜索结果的处理:

搜索结果只类文件而没有源文件: javac 使用类文件。

搜索结果只有源文件而没有类文件: javac 编译源文件并使用由此生成的类文件。

搜索结果既有源文件又有类文件: 确定类文件是否过时。若类文件已过时,则 javac 重新编译源文件并使用更新后的类文件。否则, javac 直接使用类文件。

缺省情况下,只要类文件比源文件旧, javac 就认为它已过时。

注意: javac 可以隐式编译一些没有在命令行中提及的源文件。用 -verbose 选项可跟踪自动编译。

文件列表

为缩短或简化 javac 命令,可以指定一个或多个每行含有一个文件名的文件。在命令行中,采用 ‘@’ 字符加上文件名的方法将它指定为文件列表。当 javac 遇到以 `@’ 字符开头的参数时,它对那个文件中所含文件名的操作跟对命令行中文件名的操作是一样的。

例如,可以在名为 sourcefiles 的文件中列出所有源文件的名称。该文件可能形如:

MyClass1.java
MyClass2.java
MyClass3.java
  • 1
  • 2
  • 3

执行sourcefiles文件的命令语句如下:

[root@linux ~]# javac @sourcefiles
  • 1

标准选项

选项说明
-classpath或者-cp类路径,设置用户类路径,它将覆盖CLASSPATH 环境变量中的用户类路径。若未指定 -sourcepath 选项,则在用户类路径中查找类文件和源文件。若既未设置CLASSPATH 又未指定 -classpath 选项,则用户类路径由当前目录构成
-d目录,设置类文件的目标目录。如果某个类是一个包的组成部分,则 javac 将把该类文件放入反映包名的子目录中,必要时创建目录。例如,如果指定 -d c:\myclasses 并且该类名叫 com.mypackage.MyClass,那么类文件就叫作 c:\myclasses\com\mypackage\MyClass.class。若未指定 -d 选项,则 javac 将把类文件放到与源文件相同的目录中。注意: -d 选项指定的目录不会被自动添加到用户类路径中
-deprecation显示每种不鼓励使用的成员或类的使用或覆盖的说明。没有给出 -deprecation 选项的话, javac 将显示这类源文件的名称:这些源文件使用或覆盖不鼓励使用的成员或类
-encoding设置源文件编码名称,例如 EUCJIS/SJIS。若未指定 -encoding 选项,则使用平台缺省的转换器
-g生成所有的调试信息,包括局部变量。缺省情况下,只生成行号和源文件信息
-g:none不生成任何调试信息
-g:{关键字列表}只生成某些类型的调试信息,这些类型由逗号分隔的关键字列表所指定。有效的关键字有:
source源文件调试信息
lines行号调试信息
vars局部变量调试信息
-nowarn禁用警告信息
-O优化代码以缩短执行时间。使用 -O 选项可能使编译速度下降、生成更大的类文件并使程序难以调试。在 JDK 1.2 以前的版本中,javac 的 -g 选项和 -O 选项不能一起使用。在 JDK 1.2 中,可以将 -g 和 -O 选项结合起来,但可能会得到意想不到的结果,如丢失变量或重新定位代码或丢失代码。-O 选项不再自动打开 -depend 或关闭 -g 选项。同样, -O 选项也不再允许进行跨类内嵌
-sourcepath源路径,指定用以查找类或接口定义的源代码路径。与用户类路径一样,源路径项用分号 (声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签