Mac OSX Java终端版本不正确

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (78)

好的,我对Mac和OSX有点新,但是我选择了一个,这样我就可以在我的Java程序上做一些故障排除,因为我工作的公司使用OSX和Windows机器的组合。我遇到的问题是,当我从Oracle网站安装Java 7时,它会更新首选项菜单,并在双击它们时正确执行.jar文件,但终端窗口的版本仍为1.6.0_43,并运行与终端相同的.jar文件导致运行时由于旧版本的错误。

当我导航到/ Library / Java / JavaVirtualMachines /时,出现一个空文件夹。从我在其他文章中看到的,这是Java 1.7.0的版本文件夹应该在的地方。任何想法发生了什么?我怎样才能让终端使用正确版本的Java?

total 64 lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.4 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.4.2 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.5 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.5.0 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.6 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.6.0 -> CurrentJDK drwxr-xr-x 8 root wheel 272 Mar 17 21:38 A lrwxr-xr-x 1 root wheel 1 Mar 17 21:38 Current -> A lrwxr-xr-x 1 root wheel 59 Mar 17 21:38 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

ls -ld /usr/bin/java lrwxr-xr-x 1 root wheel 74 Mar 17 21:38 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

对于新的答案错误抱歉,过于习惯了站点,阻止编辑的原始帖子这么长时间后...

提问于
用户回答回答于

JDK

在Mac OS上,/usr/bin/java朋友是委托给真正的JDK命令的存根。这些存根(stub)尊重JAVA_HOME环境变量的设置,但为此,您需要安装JDK(从http://www.oracle.com/technetwork/java/javase/downloads/index.html),而不是JRE(来自http://java.com)。

JDK安装到/Library/Java/JavaVirtualMachines/jdk1.7.0_NN.jdk(对于NN的任何值),因此将JAVA_HOME环境变量设置/Library/Java/JavaVirtualMachines/jdk1.7.0_NN.jdk/Contents/Home/usr/bin/java使用1.7。您可以简单地通过指向您JAVA_HOME来切换回1.6 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home。您可以使用该/usr/libexec/java_home工具自动查找正确的值,例如/usr/bin/java使用Java 7可以执行此操作

export JAVA_HOME=`/usr/libexec/java_home -v '1.7*'`

并使其可以使用Java 6

export JAVA_HOME=`/usr/libexec/java_home -v '1.6*'`

这同样适用于Java 8(使用-v '1.8*')。这将为相关的主要版本提供最新安装的JDK,您不需要记住NN在安装更新时手动更改。

JRE

如果你想从命令行运行1.7或1.8 JRE,可以在这里找到它/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java。这是一条固定的路径,您只能在任何给定的时间安装一个“公共”JRE。

$ /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -version
java version "1.7.0_13"
Java(TM) SE Runtime Environment (build 1.7.0_13-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)

你可以在你的shell中使用别名 .bashrc

alias java_jre='/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java'

热门问答

对象存储, 版本控制,没有提供对象的历史版本列表的查询API吗?

serverless db 如何管理?

Richel码农
推荐
1.支持pg_dump,psql工具进行数据导入和导出。 2.本地CLI,可以使用postgresql的客户端psql,也可以使用dbeavr,navicate,pgadmin等工具访问。 3.支持操作DB ,要自己写逻辑 ... 展开详请

腾讯云何时会有域名交易系统?

腾讯云域名与DNS解析团队域名、解析产品经理
推荐

安卓APP使用免费版加固后,在Android11系统上运行闪退,是什么原因?

hello,目前已经适配了Android R Beta1,预计这周内上线移动应用安全在线版,请留意日志更新

mysql安装后修改默认密码问题?

推荐已采纳
您好,可以先配置免密登录数据库,将密码修改后再关闭免密登录即可,下面介绍简要步骤: 1. 获得服务器超级管理员权限,然后先停止mysql服务 2. 修改mysql启动参数文件,文件一般在 /etc/my.cnf (linux)在[mysqld]的段中加上一句:skip-gra...... 展开详请

配置 https 配置完后报错?

女淘日记

杭州吱吱吱科技 · 站长 (已认证)

推荐已采纳

请检查服务器是否安装了代理?如有请尝试移除代理再尝试

另外,curl访问https时候需要确保服务器已经保存了证书,可以通过 curl -k --tlsv1 过滤

所属标签

扫码关注云+社区

领取腾讯云代金券