gpt4 book ai didi

java - 无法在 Mac Lion 上升级 Maven - 环境变量

转载 作者:行者123 更新时间:2023-12-01 11:18:45 26 4
gpt4 key购买 nike

我的重要信息:操作系统 10.7.5 Lion、Java 版本“1.7.0_79”、Maven 版本 3.0.3。

我对环境变量还很陌生,并且在使用 Maven 时遇到了很多麻烦。我从 Homebrew 获得了当前版本,但我需要更新的版本。我按照 snooze92 此页面 ( Maven Install on Mac OS X ) 的说明尝试安装最新版本的 Maven,3.3.3。我当前的版本 3.0.3 存储在 /usr/share/java/maven-3.0.3 中,并且在 /usr/share/maven< 处还有该目录的快捷方式.

echo $JAVA_HOME 返回/System/Library/Frameworks/JAVAVM.framework/Versions/CurrentJDK/Home

但是运行mvn --version会返回一堆详细信息,包括:Java home:/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/jre(这是与 JAVA_HOME 指向的路径不同的文件夹。)

通常,echo $M2_HOME 不会返回任何内容。在这种情况下,Maven 3.0.3 工作得很好。如果我按照 snooze92 的建议创建 $M2_HOME 环境变量,并使用以下命令将其添加到我的路径中:

export M2_HOME=/usr/local/apache-maven/apache-maven-3.3.3
export M2=$M2_HOME/bin
export PATH=$M2:$PATH

Maven 停止工作;输入 mvn --version 返回以下内容:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

退出终端(或从我的 .bash_profile 文件中删除上述行并重新打开)使 Maven 再次正常工作,尽管它总是恢复到版本 3.0.3。

我还尝试将此页面上的命令 ( http://www.mkyong.com/maven/install-maven-on-mac-osx/ ) 添加到我的 .bash_profile 文件中:

export M2_HOME=/usr/local/apache-maven/apache-maven-3.3.3
export PATH=$PATH:$M2_HOME/bin

这会导致 Maven 返回错误消息:

-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.

最佳答案

您可以编辑 .bash_profile 以导出 JDK 7 Mac OS 安装的动态路径。这可以简单地通过添加第一行来实现:

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

因此,应该保证在运行时不使用 1.6 风格的 JDK(例如,Apple 提供的),而是使用系统环境的有效 JDK 7。尝试验证

的输出

java -版本

编辑 .bash_profile 文件后在新的终端实例中。它应该为您提供 1.7.x Java。完成此步骤后,您的新 Maven 版本应该可以工作并且可以通过

进行验证

mvn -版本

说明:

如果您使用/System/Library/Frameworks/JAVAVM.framework/Versions/CurrentJDK/Home,您的JAVA_HOME将会得到类似的内容:

java version "1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)

这不是您想要/需要的 Maven 3.3.x

关于java - 无法在 Mac Lion 上升级 Maven - 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31502448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com