当我输入" java -version"时,它从哪里提取信息?

时间:2016-04-20 11:56:32

标签: java bash unix command-line-interface

users-MacBook-Pro:~ user$ java -version
java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)

如上所示,当我输入" java -version"它返回此信息。当我点击Enter然后弹出这个信息时bash发生了什么?

3 个答案:

答案 0 :(得分:1)

根据您的环境路径变量,命令行将查找可执行文件并使用参数-version

运行它

不确定Mac,但在Linux上“哪个java”应该为您提供bash正在使用的可执行文件的路径

答案 1 :(得分:0)

看起来信息来自rt.jar文件中的/sun/misc/Version.class。当我运行java -version时,我无法跟踪JVM获取此信息的路径,但我们正在寻找的文字字符串肯定存在于该类中......而不是{ {1}}二进制本身。

(这是在带有OpenJDK Java 8的Linux机器上)

答案 2 :(得分:0)

如果您已将java安装到您的计算机中,并在java的任何一个上设置Operating System路径到环境变量并输入

java -version //command to use show Installed Java Version on Console.

您将获得已安装的Java版本作为输出(从您的示例中复制)。 此处java用于调用jvm-version是选项。

java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)

如果您的机器没有jave,那么它将显示结果

java is not recognized as an internal or external command.

java命令提供了更多选项。一些选项是

-d32
-d64
-server
-hotspot
 ...... // more than 20 options are available.
  

这些选项有一个特殊目的,即收集不同类型的信息登记系统。