# Problem mit Eclipse



## Anima97 (25. August 2011)

Hey,
ich wollte mir heute mal Java anschauen, weil ich mit C++ momentan nicht so ganz weiterkomme. Also habe ich Eclipse bei Chip.de als IDE heruntergeladen und die JRE auf meinem Rechner installiert. 
Jetzt wollte ich die eclipse.exe öffnen und dann ist so ein Meldefenster gekommen:

"A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations:
C:\eclipse\jre\bin\javaw.exe
javaw.exe in your current PATH"

Hier scheint mir die JRE irgendwie zu fehlen, obwohl ich sie bei mir installiert habe. Kann mir jemand sagen, wo ich den Ordner jre herbekomme?


----------



## DevDennis (25. August 2011)

Du musst dir nicht nur die jre installieren sondern das jdk auch:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Dort bekommst du alles:
Um richtig gut zu programmieren würde ich erst das jre deinstallieren was du installiert hast, dann das jdk 1.7.0 installieren, dann schau ob im Ordner C:\Program Files\Java die Ordner für jdk 1.7.0 und jre7 sind, sollte das jre7 fehlen installieres auch von der oracle-seite. Als aller leztes installierst du die IDE (JavaEditor, eclipse oder NetBeans sind die aktuellen). Ich benutze den Java-Editor.

Java-Editor: http://www.javaeditor.org/index.php/Download
eclipse classic 3.7: http://www.eclipse.org/downloads/
NetBeans: http://netbeans.org/downloads/

Lg Dennis


----------



## Anima97 (25. August 2011)

Danke, ich habe mich jetzt doch für NetBeans entschieden. Ich habe jetzt ein kleines Programm in Java entwickelt und das läuft unter NB jetzt auch, sprich es lässt sich ausführen.
Wenn ich mein Programm jetzt aber einem anderen schicken will (der auch die JRE installiert hat). Wie mache ich das? Ich brauche ja die JAR-Datei, aber in dem Projektordner ist da keine, sondern nur eine JAVA-Datei, eine CLASS-Datei und noch ein paar XML-Dateien.


----------



## DevDennis (25. August 2011)

Mit NB kenne ich mich nicht aus, aber hier: http://techtab.wordpress.com/2008/05/29/jar-dateien-mit-netbeans-erstellen/ wird erklärt wie man ein .jar erstellt. Beim Java-Editor macht es einen unterschied ob grafisch oder nicht. Denke bei NB auch.

Lg Dennis


----------



## sheel (25. August 2011)

Hi

Ein Javaprogramm muss nicht unbedingt eine Jar-Datei sein.
Grundsätzlich ist die class-Datei das Programm.
Eine Jar ist ein Archiv (wie Zip/Rar...) aus zusammengehörenden class-Dateien, bei dem man noch einige Möglichkeiten hat, zB. die Startklasse festzulegen etc.


----------



## DevDennis (25. August 2011)

Eine jar *ist* eine zip :-D Kann man auch selber machen! einfach endung zip in jar benennen

typischer Aufbau einer jar:

```
META-INF                    [Ordner]
     -> MANIFEST.MF    [txt-Datei]
          -> Manifest-Version: 1.0
              Created-By: 1.7.0 (Oracle Corporation)
              Main-Class: [Programmname]
                               [hört immer mit einer leerzeile auf!]
[Programmname].class          [class Datei]
```

Lg Dennis


----------



## sheel (25. August 2011)

DevDennis hat gesagt.:


> Eine jar *ist* eine zip :-D


 
Nö. Meistens, aber nicht zwangsmäßig.


----------



## DevDennis (25. August 2011)

So habe ich am anfang meine jar's erstellt :-D
mit zip hat es immer funktioniert

Lg Dennis


----------



## Anima97 (25. August 2011)

Okay danke, jetzt habe ich zumindestens meine JAR-Datei. Nur irgendwie wird die bei Doppelklick nicht gestartet (ich versuche sie mit der Java TM zu öffnen).
Also, ich habe folgenden Quelltext:


```
package beer;
import java.util.*;

public class Beer {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Wie alt bist du: ");
        int age = sc.nextInt();
        
        if (age >= 16) {
            System.out.println("Du darfst Bier trinken. :)");
        }
        else {
            System.out.println("Tut mir leid. Kein Alkohol unter 16 Jahren!");
        }
    }
}
```

Und noch etwas: Wenn ich das Programm jemandem schicken will, brauch ich dann noch andere Dateien außer der JAR?


----------



## DevDennis (25. August 2011)

Dein Programm ist nicht grafisch deswegen funktioniert es nicht. Man kann jar über die Konsole öffenen
versuchs mal mit java -jar file.jar


----------



## sheel (25. August 2011)

Was hat denn das damit zu tun?

Im Manifest muss die Main-Klasse angegeben werden.
Und zum mitschicken: Das Jar sollte reichen.


----------



## DevDennis (25. August 2011)

Versuch mal das auszuführen!


----------



## DevDennis (25. August 2011)

und jezt mit ner batch mit folgendem inhalt:

java -jar Demo.jar
pause


----------



## Anima97 (25. August 2011)

sheel hat gesagt.:


> Was hat denn das damit zu tun?
> 
> Im Manifest muss die Main-Klasse angegeben werden.
> Und zum mitschicken: Das Jar sollte reichen.


In meiner Manifest steht, dass die Main-Klasse automatisch hinzugefügt wird:


```
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
```

@DevDennis: Bei mir öffnet sich dann das CMD und gibt die Meldung "Der Befehlt "java" ist entweder falsch geschrieben oder konnte nicht gefunden werden."


----------



## DevDennis (25. August 2011)

Mal versucht über die Console?


----------



## DevDennis (25. August 2011)

Führe die bat-Datei aus und sage ob es funktioniert!


----------



## Anima97 (25. August 2011)

DevDennis hat gesagt.:


> Führe die bat-Datei aus und sage ob es funktioniert!


 Kommt leider derselbe Fehler. Es kann den Befehl "java" nicht finden, obwohl ich die JRE installiert habe.


----------



## sheel (25. August 2011)

@Jar: Ok, du hast teilweise recht.
Das "Problem" ist, dass std. nur javaw mit dem Dateityp in Verbindung gebracht wird.
Das es bei mir funktioniert ist auf eine Änderung daran zurückzuführen.


----------



## DevDennis (25. August 2011)

versuche mal diesen Code auszuführen. Auch als jar


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

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 25.08.2011
  * @author Dennis Richter
  */

public class Test extends JFrame {
  // Anfang Attribute
  private JLabel jLabel1 = new JLabel();
  // Ende Attribute

  public Test(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 400; 
    int frameHeight = 300;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    jLabel1.setBounds(32, 24, 171, 41);
    jLabel1.setText("Und Funktioniert es?");
    cp.add(jLabel1);
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Methoden
  // Ende Methoden

  public static void main(String[] args) {
    new Test("Test");
  }
}
```


----------

