[RESOLVIDO] erro ao executar jar A Java Exception has occurred

4 respostas
T

Ola pessoal, sou iniciante em java e gostaria de fazer um browser completo, achei esse code na net e quando gero o arquivo "jar" nao executa o arquivo a parece a msg "A Java Exception has occurred." sei que deve ser algo relacionado as import, mas nao faço ideia como soluciona-lo...

import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.browser.CloseWindowListener;
import org.eclipse.swt.browser.LocationEvent;
import org.eclipse.swt.browser.LocationListener;
import org.eclipse.swt.browser.ProgressEvent;
import org.eclipse.swt.browser.ProgressListener;
import org.eclipse.swt.browser.StatusTextEvent;
import org.eclipse.swt.browser.StatusTextListener;
import org.eclipse.swt.browser.WindowEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;


public class AdvancedBrowser {
	 private static final String AT_REST = "Ready";

	  public AdvancedBrowser(String location) {
	    Display display = new Display();
	    Shell shell = new Shell(display);
	    shell.setText("Advanced Browser");
	    
	    shell.setLayout(new FormLayout());

	    Composite controls = new Composite(shell, SWT.NONE);
	    FormData data = new FormData();
	    data.top = new FormAttachment(0, 0);
	    data.left = new FormAttachment(0, 0);
	    data.right = new FormAttachment(100, 0);
	    controls.setLayoutData(data);

	    Label status = new Label(shell, SWT.NONE);
	    data = new FormData();
	    data.left = new FormAttachment(0, 0);
	    data.right = new FormAttachment(100, 0);
	    data.bottom = new FormAttachment(100, 0);
	    status.setLayoutData(data);

	    final Browser browser = new Browser(shell, SWT.BORDER);
	    data = new FormData();
	    data.top = new FormAttachment(controls);
	    data.bottom = new FormAttachment(status);
	    data.left = new FormAttachment(0, 0);
	    data.right = new FormAttachment(100, 0);
	    browser.setLayoutData(data);

	    controls.setLayout(new GridLayout(7, false));

	    Button button = new Button(controls, SWT.PUSH);
	    button.setText("Back");
	    button.addSelectionListener(new SelectionAdapter() {
	      public void widgetSelected(SelectionEvent event) {
	        browser.back();
	      }
	    });

	    button = new Button(controls, SWT.PUSH);
	    button.setText("Forward");
	    button.addSelectionListener(new SelectionAdapter() {
	      public void widgetSelected(SelectionEvent event) {
	        browser.forward();
	      }
	    });

	    button = new Button(controls, SWT.PUSH);
	    button.setText("Refresh");
	    button.addSelectionListener(new SelectionAdapter() {
	      public void widgetSelected(SelectionEvent event) {
	        browser.refresh();
	      }
	    });

	    button = new Button(controls, SWT.PUSH);
	    button.setText("Stop");
	    button.addSelectionListener(new SelectionAdapter() {
	      public void widgetSelected(SelectionEvent event) {
	        browser.stop();
	      }
	    });

	    final Text url = new Text(controls, SWT.BORDER);
	    url.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
	    url.setFocus();

	    button = new Button(controls, SWT.PUSH);
	    button.setText("Go");
	    button.addSelectionListener(new SelectionAdapter() {
	      public void widgetSelected(SelectionEvent event) {
	        browser.setUrl(url.getText());
	      }
	    });

	    Label throbber = new Label(controls, SWT.NONE);
	    throbber.setText(AT_REST);

	    shell.setDefaultButton(button);

	    browser.addCloseWindowListener(new AdvancedCloseWindowListener());
	    browser.addLocationListener(new AdvancedLocationListener(url));
	    browser.addProgressListener(new AdvancedProgressListener(throbber));
	    browser.addStatusTextListener(new AdvancedStatusTextListener(status));

	    // Go to the initial URL
	    if (location != null) {
	      browser.setUrl(location);
	    }

	    
	    shell.open();
	    while (!shell.isDisposed()) {
	      if (!display.readAndDispatch()) {
	        display.sleep();
	      }
	    }
	    display.dispose();
	  }
	  class AdvancedCloseWindowListener implements CloseWindowListener {
	    public void close(WindowEvent event) {
	      ((Browser) event.widget).getShell().close();
	    }
	  }

	  class AdvancedLocationListener implements LocationListener {
	    private Text location;

	    public AdvancedLocationListener(Text text) {
	      location = text;
	    }

	    public void changing(LocationEvent event) {
	      location.setText("Loading " + event.location + "...");
	    }

	    public void changed(LocationEvent event) {
	      location.setText(event.location);
	    }
	  }

	  class AdvancedProgressListener implements ProgressListener {
	    private Label progress;

	    public AdvancedProgressListener(Label label) {
	      progress = label;
	    }

	    public void changed(ProgressEvent event) {
	      if (event.total != 0) {
	        int percent = (int) (event.current / event.total);
	        progress.setText(percent + "%");
	      } else {
	        progress.setText("?");
	      }
	    }

	    public void completed(ProgressEvent event) {
	      progress.setText(AT_REST);
	    }
	  }

	  class AdvancedStatusTextListener implements StatusTextListener {
	    private Label status;

	    public AdvancedStatusTextListener(Label label) {
	      status = label;
	    }

	    public void changed(StatusTextEvent event) {
	      status.setText(event.text);
	    }
	  }

	  public static void main(String[] args) {
	    new AdvancedBrowser("http://www.google.com");
	  }
	}

4 Respostas

F

vc ta usando eclipse? tenta fazer um debug.

T

fuadksd: apareceu isso “Editor does not contain a main type”

F

tem que ver o manifest do jar, ve se ta setando a classe main certo.

abre o jar, vai na pasta METAINF e ve se o manifest.mf tem uma entrada assim

Main-Class=AdvancedBrowser

T

fuadksd: deu certo… Obrigado!! =)

Criado 10 de dezembro de 2011
Ultima resposta 10 de dez. de 2011
Respostas 4
Participantes 2