title: Encountering error: java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableList$Builder
body: <p>I'm new to Selenium WebDriver using EclipseIDE with TestNG. I'm currently running this sample code in Eclipse via TestNG:</p>
  
  <pre><code>import org.openqa.selenium.By;
  import org.openqa.selenium.WebElement;
  import org.openqa.selenium.firefox.FirefoxDriver;
  import org.testng.annotations.AfterTest;
  import org.testng.annotations.BeforeTest;
  import org.testng.annotations.Test;
  
  import java.util.List;
  
  public class CheesecakeFactory {
  
      FirefoxDriver driver;
  
      @BeforeTest
      public void startDriver() {
          driver = new FirefoxDriver();
      }
  
      @AfterTest
      public void stopDriver() {
          driver.close();
      }
  
      @Test
      public void listCheesecakes() {
          driver.get("http://www.thecheesecakefactory.com/");
          driver.findElement(By.linkText("Menu")).click();
          driver.findElement(By.linkText("Cheesecake")).click();
          List&lt;WebElement&gt; cheesecakes = driver.findElements(By.xpath("id('leftNav_levelTwo')//li"));
  
          System.out.println(cheesecakes.size() + " cheesecakes:");
          for (int i=0; i&lt;cheesecakes.size(); i++) {
              System.out.println(i+1 + ". " + cheesecakes.get(i).getText());
          }
      }
  
  }
  </code></pre>
  
  <p>But Eclipse returns this:</p>
  
  <pre><code>[TestNG] Running:
    C:\Users\ryan\AppData\Local\Temp\testng-eclipse--616826937\testng-customsuite.xml
  
  FAILED CONFIGURATION: @BeforeTest startDriver
  java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableList$Builder
      at org.openqa.selenium.os.WindowsUtils.getPathsInProgramFiles(WindowsUtils.java:275)
      at org.openqa.selenium.firefox.internal.Executable.locateFirefoxBinaryFromPlatform(Executable.java:148)
      at org.openqa.selenium.firefox.internal.Executable.&lt;clinit&gt;(Executable.java:25)
      at org.openqa.selenium.firefox.FirefoxBinary.&lt;init&gt;(FirefoxBinary.java:60)
      at org.openqa.selenium.firefox.FirefoxBinary.&lt;init&gt;(FirefoxBinary.java:56)
      at org.openqa.selenium.firefox.FirefoxDriver.&lt;init&gt;(FirefoxDriver.java:78)
      at CheesecakeFactory.startDriver(CheesecakeFactory.java:16)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
      at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
      at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
      at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
      at org.testng.TestRunner.beforeRun(TestRunner.java:641)
      at org.testng.TestRunner.run(TestRunner.java:609)
      at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
      at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
      at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
      at org.testng.SuiteRunner.run(SuiteRunner.java:240)
      at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
      at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
      at org.testng.TestNG.runSuitesSequentially(TestNG.java:1197)
      at org.testng.TestNG.runSuitesLocally(TestNG.java:1122)
      at org.testng.TestNG.run(TestNG.java:1030)
      at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
      at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
      at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
  </code></pre>
  
  <p>I don't understand why I'm getting this error. I've done the following:</p>
  
  <ol>
  <li><p>Added the guava-12.0.jar file (along with the other jar files in the Selenium-2.25.0 webdriver) as an external jar file in Eclipse. (This jar file contains the ImmutableList$Builder class)</p></li>
  <li><p>Added the path of this jar file in the CLASSPATH (Environment Variables>System Variables)</p></li>
  </ol>
  
  <p>Am I missing something? Any help is greatly appreciated.</p>