Hi Li Li, This is happening because Hadoop expects classes.jar to be in a location which no longer exists on Java 7 on Mac.
Below steps will fix it, $ mkdir -p /Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home/Classes/ $ cd !$ $ ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home/lib/tools.jar classes.jar Thanks, Mahesh On Mon, Oct 20, 2014 at 12:39 AM, Li Li <fancye...@gmail.com> wrote: > it says can't find tools at > > Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home/Classes/classes.jar > My JAVA_HOME is > /Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/home. > I can find tools.jar in $JAVA_HOME/lib directory. > Why it try to find tools.jar in > > Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home/Classes/classes.jar? > > the command line output is: > > Exception in thread "main" java.lang.AssertionError: Missing tools.jar > at: > /Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home/Classes/classes.jar. > Expression: file.exists() > > at > org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:395) > > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:683) > > at > org.codehaus.mojo.jspc.CompilationMojoSupport.findToolsJar(CompilationMojoSupport.groovy:371) > > at > org.codehaus.mojo.jspc.CompilationMojoSupport.this$4$findToolsJar(CompilationMojoSupport.groovy) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:606) > > at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86) > > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230) > > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:912) > > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:78) > > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrent0(ScriptBytecodeAdapter.java:112) > > at > org.codehaus.mojo.jspc.CompilationMojoSupport.execute(CompilationMojoSupport.groovy:318) > > at > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) > > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) > > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) > > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) > > at > org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions(MojoExecutor.java:365) > > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:199) > > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) > > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) > > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) > > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) > > at > org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) > > at > org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) > > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) > > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) > > at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) > > at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) > > at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:606) > > at > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) > > at > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) > > at > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) > > at > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) >