代码之家  ›  专栏  ›  技术社区  ›  wadesworld

为什么OSXJava总是报告1.6?

  •  3
  • wadesworld  · 技术社区  · 15 年前

    有人碰到这个吗?

    我意识到1.6是OSX上的默认版本,但我正在尝试使用1.5在命令行上编译/运行一个程序。但是,无论我尝试什么,它都报告1.6。

    /System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home/bin/java -version
    java version "1.6.0_20"
    Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065)
    Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode)
    rtp-wwilliam-8712:bin wwilliam$ 
    

    请注意java二进制文件的完整路径。无论我尝试哪一个早期版本的Java,我总是得到1.6版本的报告。

    思想?

    1 回复  |  直到 15 年前
        1
  •  8
  •   mipadi    15 年前

    因为在10.6中,1.5(在JavaVM框架中)是符号链接到1.6的。OSX10.6仅支持1.3和1.6版本;1.4和1.5是1.6的符号链接:

    $ ll /System/Library/Frameworks/JavaVM.framework/Versions/
    total 64
    lrwxr-xr-x  1 root  wheel     5B May 19 12:17 1.3@ -> 1.3.1
    drwxr-xr-x  3 root  wheel   102B Dec  2 20:55 1.3.1/
    lrwxr-xr-x  1 root  wheel    10B May 19 12:17 1.4@ -> CurrentJDK
    lrwxr-xr-x  1 root  wheel    10B May 19 12:17 1.4.2@ -> CurrentJDK
    lrwxr-xr-x  1 root  wheel    10B May 19 12:17 1.5@ -> CurrentJDK
    lrwxr-xr-x  1 root  wheel    10B May 19 12:17 1.5.0@ -> CurrentJDK
    lrwxr-xr-x  1 root  wheel     5B May 19 12:17 1.6@ -> 1.6.0
    drwxr-xr-x  8 root  wheel   272B May 19 17:56 1.6.0/
    drwxr-xr-x  9 root  wheel   306B May 19 17:56 A/
    lrwxr-xr-x  1 root  wheel     1B May 19 12:17 Current@ -> A
    lrwxr-xr-x  1 root  wheel     3B May 19 12:17 CurrentJDK@ -> 1.6