estou iniciando no swt e fazendo o tutorial de
http://www-106.ibm.com/developerworks/library/os-ecgui1/?ca=dnt-43
tenho a exception abaixo em runtime:
java.lang.NoClassDefFoundError: org/eclipse/core/internal/boot/DelegatingURLClassLoader
at org.eclipse.core.runtime.Platform.run(Platform.java:413)
at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:1271)
at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:320)
at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:303)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:289)
at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:729)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:801)
at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:721)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:238)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:991)
at Explorer.createContents(Explorer.java:18)
at org.eclipse.jface.window.Window.create(Window.java:302)
at org.eclipse.jface.window.Window.open(Window.java:552)
at Explorer.main(Explorer.java:26)
Exception in thread "main"
O problema é com um parâmetro tipo File(“C:”) que está no Explorer.java, porém se eu coloco “C:\arquivo.txt” ele não dá pau, mas tb não me mostra nada na árvore.
Código abaixo:
FileTreeContentProvider.java
[code]import java.io.;
import org.eclipse.jface.viewers.;
public class FileTreeContentProvider implements ITreeContentProvider
{
public Object[] getChildren(Object element)
{
Object[] kids = ((File) element).listFiles();
return kids == null ? new Object[0] : kids;
}
public Object[] getElements(Object element)
{
return getChildren(element);
}
public boolean hasChildren(Object element)
{
return getChildren(element).length > 0;
}
public Object getParent(Object element)
{
return ((File)element).getParent();
}
public void dispose()
{
}
public void inputChanged(Viewer viewer, Object old_input, Object new_input)
{
}
}[/code]
Explorer.java
[code]import java.io.*;
import org.eclipse.jface.viewers.;
import org.eclipse.jface.window.;
import org.eclipse.swt.widgets.*;
public class Explorer extends ApplicationWindow
{
public Explorer()
{
super(null);
}
protected Control createContents(Composite parent)
{
TreeViewer tv = new TreeViewer(parent);
tv.setContentProvider(new FileTreeContentProvider());
tv.setInput(new File("C:"));
return tv.getTree();
}
public static void main(String[] args)
{
Explorer w = new Explorer();
w.setBlockOnOpen(true);
w.open();
Display.getCurrent().dispose();
}
}[/code]
Os códigos acima são idênticos ao do tutorial. Onde está o erro?