title: JFace and Assertion ClassNotFoundException in Eclipse
body: <p>I am going through examples in one book, and I experienced error for which I don't know exactly what is causing it and how to resolve it.</p>
  
  <p>OS: Windows7 64bit, Eclipse IDE for Java Developers, JFace installed or better to say jars attached to project, default ones which comess with Eclipse: </p>
  
  <ul>
  <li>org.eclipse.jface_3.8.102.v20130123-162658.jar</li>
  <li>org.eclipse.jface.databinding_1.6.0.v20120912-132807.jar</li>
  <li>org.eclipse.jface.text_3.8.2.v20121126-164145.jar</li>
  </ul>
  
  <p>Here is the application code:</p>
  
  <pre><code>import org.eclipse.jface.viewers.ColumnWeightData;
  import org.eclipse.jface.viewers.TableLayout;
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.layout.FillLayout;
  import org.eclipse.swt.widgets.Display;
  import org.eclipse.swt.widgets.Shell;
  import org.eclipse.swt.widgets.Table;
  import org.eclipse.swt.widgets.TableColumn;
  import org.eclipse.swt.widgets.TableItem;
  
  public class TableLayoutExample {
      public static void main(String[] args) {
          Display display = new Display();
          Shell shell = new Shell(display);
  
          shell.setSize(500, 400);
          shell.setText("Table Example");
          shell.setLayout(new FillLayout());
  
          TableLayout layout = new TableLayout();
          layout.addColumnData(new ColumnWeightData(40, 80, true));
          layout.addColumnData(new ColumnWeightData(40, 80, true));
          layout.addColumnData(new ColumnWeightData(40, 80, true));
          Table table = new Table(shell, SWT.SINGLE);
          table.setLayout(layout);
          TableColumn column1 = new TableColumn(table, SWT.CENTER);
          TableColumn column2 = new TableColumn(table, SWT.CENTER);
          TableColumn column3 = new TableColumn(table, SWT.CENTER);
          TableItem item = new TableItem(table, SWT.NONE);
          item.setText(new String[] { "column 1", "column 2", "column 3" });
          item = new TableItem(table, SWT.NONE);
          item.setText(new String[] { "a", "b", "c" });
  
          shell.open();
          while (!shell.isDisposed()) {
              if (!display.readAndDispatch())
                  display.sleep();
          }
          display.dispose();
      }
  }
  </code></pre>
  
  <p>And here is the error:</p>
  
  <pre class="lang-none prettyprint-override"><code>Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/Assert
      at org.eclipse.jface.viewers.ColumnWeightData.&lt;init&gt;(ColumnWeightData.java:70)
      at TableLayoutExample.main(TableLayoutExample.java:21)
  Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.Assert
      at java.net.URLClassLoader$1.run(Unknown Source)
      at java.net.URLClassLoader$1.run(Unknown Source)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(Unknown Source)
      at java.lang.ClassLoader.loadClass(Unknown Source)
      at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
      at java.lang.ClassLoader.loadClass(Unknown Source)
      ... 2 more
  </code></pre>
  
  <p><strong>Any ideas what might gone wrong?</strong></p>