当前位置: 首页 > 面试题库 >

Mac OSX Java Terminal版本不正确

颜祖鹤
2023-03-14
问题内容

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

当我导航到/ Library / Java / JavaVirtualMachines /时,出现一个空文件夹。从其他文章中可以看到,这是Java
1.7.0的版本文件夹所在的位置。知道发生了什么吗?如何使终端使用正确的Java版本?

编辑:@DWilches评论他的原始答案:(1)

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

(2)

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

编辑:很抱歉用新的答案犯了这个错误,很久以后就习惯于阻止对原始帖子进行编辑的网站…


问题答案:

在Mac
OS上,/usr/bin/java朋友是代表真实JDK命令的存根。这些存根遵循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。你可以简单地通过指向您切换到1.6
JAVA_HOME,以/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安装更新时,您无需记住手动更改。

杰瑞

如果要从命令行运行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'


 类似资料:
  • 好吧,我对Mac和OSX有点陌生,但我选择了一个,这样我就可以用一个对我的Java程序进行一些故障排除,因为我工作的公司使用OSX和Windows机器的组合。我遇到的问题是,当我从Oracle的网站安装Java7时,它更新了首选项菜单,双击.jar文件时显示可以正确执行这些文件,但终端窗口的版本仍然是1.6.0_43,从终端运行相同的.jar文件会导致运行时错误,原因是版本较旧。 当我导航到/li

  • 问题内容: 我创建了一个新的Rails项目,调用 然后当我在目录中运行 我收到关注错误 我见过其他人遇到此错误,但他们通常是linux用户,并且我正在运行Windows。我试图重新安装Rails(railsinstaller.org)和mysql 5.5。我既使用了32位版本,也使用了64位版本 问题答案: 这里似乎已经有几个问题。您尝试过他们的解决方案吗? 相关部分在这里:

  • 我在Win 7下运行的是Ant 1.8.1。而我的Java版本是1.7_17。 我在我的构建文件中添加了以下2行用于诊断。 而结果就是 知道发生了什么吗? 蚂蚁1.8.1中的硬编码是它能显示的最高java版本是1.6吗?

  • 我使用的是最新版本的Android Studio,并从Gradle的网站安装了最新版本的Gradle。然后我导入了一些Android示例应用程序,但构建会生成一个错误,内容如下: 需要Gradle版本1.10。当前版本是2.1。 我不知道它从哪里获得1.10版本。如果我打开格雷德包装.properties文件,我有: https://services.gradle.org/distribution

  • 我正在使用Gradle5的BOM(物料清单)功能。这是我对JUnit5依赖项的描述: 我的假设是,提供BOM将解决依赖关系的版本。但是,它们被解析为。我不知道为什么。(我还请求锁定指定的版本) 检查JUnit 5的BOM,我们看到所有依赖项都与版本一起列出(在项目中解析为5.1.1),所有依赖项都与版本一起列出(在项目中正确解析)。 我不确定我错过了什么,希望在这里得到一些帮助。谢谢! 编辑: 我

  • 试图在我的开发机器上启动我的rails服务器给了我这个错误: 查看服务器日志,我发现它正在查找icu4c版本63,但我在icu4c版本64.2。按照这里的说明,我能够重新安装icu4c 63.1版。然后我可以启动我的服务器。执行psql-version告诉我我正在运行11.2。 但是,当我启动rails控制台时,当我输入命令时 我收到警告消息: 我该如何解决这个问题?