# .jar erstellen mit BlueJ



## Gast (16. Mai 2006)

Hallo!

Ich probiere schon seit mehren Tagen eine ausführbare Jar Datei von einer winzigen Anwendung zu erstellen. Ich benutze BlueJ und die Option "Create Jar File". Wenn ich die Jar dann mit nem Doppelklick öffne kommt das:

---------------------------
Java Virtual Machine Launcher
---------------------------
Fatal exception occurred.  Program will exit.
---------------------------
OK   
---------------------------



Hier der Quelltext:


```
import java.awt.*;
import java.awt.event.*;


public class Einlesen implements ActionListener
{
private Frame main;
private Button ok;
private TextField textfeld;

    public Einlesen()
    {
        main = new Frame("Bitte etwas eingeben");
        ok = new Button("okay");
        ok.addActionListener(this);
        textfeld = new TextField();
        main.add(ok,BorderLayout.SOUTH);
        main.add(textfeld,BorderLayout.NORTH);
        main.setLocation(520,250);
        main.pack();
        main.show();
    }
    
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == ok)
        {
            System.out.println(textfeld.getText());
        }
        
    }
}
```


----------



## Onkel Hatti (16. Mai 2006)

Moinsen

Hmmm, auf den ersten Blick:
Da fehlt die main-Methode.

Eine Klasse, die ausführbar ist, muss die Methode


```
public static void main (String[] args)
{

}
```
haben. Fürge einfach den Code deiner Klasse hinzu:


```
public static void main (String[] args)
{
   Einlesen readIn=new Einlesen();
   readIn.setVisible(true);
}
```

Dafür nimm das "main.show()" aus deinem bisherigen Code heraus.

Das könnte nun schon laufen (habs aber nicht ausprobiert).

Gruß
 Hatti


----------



## Guest (16. Mai 2006)

```
import java.awt.*;
import java.awt.event.*;


public class Einlesen implements ActionListener
{
private Frame main;
private Button ok;
private TextField textfeld;
private TextArea txt;

    public Einlesen()
    {
        main = new Frame("Bitte etwas eingeben");
        ok = new Button("okay");
        ok.addActionListener(this);
        textfeld = new TextField();
        txt = new TextArea();
        txt.setEditable(false);
        main.add(ok,BorderLayout.SOUTH);
        main.add(textfeld,BorderLayout.NORTH);
        main.add(txt);
        main.setLocation(520,250);
        main.pack();
    
    }
    
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == ok)
        {
            txt.append(textfeld.getText()+"\n");

        }
        
    }
    
    
   public static void main (String[] args)
   {
      Einlesen readIn=new Einlesen();
      readIn.setVisible(true);
   }

}
```



Also mit dem letzten Teil (readIn.setVisible(true)) kommt der Compiler nich klar was ja auch logisch ist, die Methode gibts bei der Klasse "Einlesen" nicht.


----------



## Illuvatar (16. Mai 2006)

Dann lass es weg  Aber irgendwann musst du den Frame sichtbar machen.

Was der fatale Fehler genau ist siehst du btw wenn du die jar-Datei in der Konsole mit java -jar Bla.jar startest.


----------



## Onkel Hatti (16. Mai 2006)

Moinsen

Ups, stimmt, die Klasse Einlesen implementiert ja Actionlistener.
Dann muss das .setVisible(true) doch hinter main.pack(); als
main.setVisible(true);

Gruß
 Hatti


----------



## Gelöschtes Mitglied 5909 (17. Mai 2006)

http://java.sun.com/docs/books/tutorial/deployment/jar/

hier is noch n kleines tutorial


----------

