Skip to content

Instantly share code, notes, and snippets.

@cici
Forked from SQiShER/UpdateEnvironmentPlist.sh
Last active September 18, 2015 14:42
Show Gist options
  • Select an option

  • Save cici/359057880d66204c2c41 to your computer and use it in GitHub Desktop.

Select an option

Save cici/359057880d66204c2c41 to your computer and use it in GitHub Desktop.
Two simple commands to resolve problems with Maven installed via Homebrew
defaults write ~/.MacOSX/environment.plist M2_HOME `brew --prefix maven`/libexec
defaults write ~/.MacOSX/environment.plist M2 `brew --prefix maven`/libexec/bin
@cici
Copy link
Author

cici commented Sep 18, 2015

When you install Maven via Homebrew, chances are that you run into this error, as soon as you try using it:

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.launcher.Launcher
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

To fix it, you need to point the M2_HOME environment variable to the libexec directory within the maven installation directory (run brew --prefix maven to see the directory of the currently activated version). Setting the M2 variable isn't necessary, but might help, if the problem persists. The two commands above will automatically set the correct paths in your ~/.MacOSX/environment.plist file and should be run every time you update Maven via Homebrew. In order for the changes to take effect you have to log out and in again or restart your Mac.

Credit goes to digitalsanctum.com for figuring this out.

@cici
Copy link
Author

cici commented Sep 18, 2015

I also did

export M2=brew --prefix maven/libexec/bin
export M2_HOME=brew --prefix maven/libexec

so that I could use maven in my open shell.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment