Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Java: Kann Programme nicht ausführen

Diskussion: Java: Kann Programme nicht ausführen im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo, ich versuch mal alle Informationen zusammenzutragen. Habe j2sdk-1_4_2-nb-3_5_1-bin-windows.exe in das Verzeichnis H:\Programme\j2sdk_nb installiert. Der .bin- Ordner ist somit ...

Antwort
Alt 09.03.04, 20:22   #1 (permalink)
 
Registriert seit: 18.04.02
Quetzalcoatl Leistung: Facit NTK
Likes: 0
Standard Java: Kann Programme nicht ausführen

Anzeige

Hallo,
ich versuch mal alle Informationen zusammenzutragen.

Habe j2sdk-1_4_2-nb-3_5_1-bin-windows.exe in das Verzeichnis H:\Programme\j2sdk_nb installiert.
Der .bin- Ordner ist somit hier: H:\Programme\j2sdk_nb\j2sdk1.4.2\bin

Habe dann anschließend bei den Umgebungsvariablen unter Path folgendes manuell hinzugefühgt ( Alles was in rot steht):
H:\Programme\j2sdk_nb\j2sdk1.4.2\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\Sy stem32\Wbem;H:\Programme\j2sdk_nb\j2sdk1.4.2\bin;"H:\Programme\Norton SystemWorks\Norton Ghost\";h:\Programme\Support Tools\;H:\PROGRA~1\SECUREFX

Zum schreiben benutzt ich NetBeans IDE 3.5.1, was hier installiert ist:
H:\Programme\j2sdk_nb\netbeans3.5.1\bin\runidew.ex e

Während dieses Programm läuft:

Code:
public class Test
{
 public static void main (String[] args)
  {
    System.out.println ("         i");
    System.out.println ("       i**i");
    System.out.println ("      i**i**i");
    System.out.println ("    i**i**i**i");
    System.out.println ("   i**i**i**i**i");
    System.out.println ("i**i**i**i**i**i**i");
    System.out.println ("         *");
    System.out.println ("         *");
  }
}
läuft dieses nicht:
Code:
class GanzeZahlen 
{
 public static void main(String args[]) {
 int zahl; // speichert die Benutzereingabe
 System.out.print("Geben Sie eine Zahl ein: ");
 zahl = Eingabe.inteingabe();
 System.out.println("Ihre Zahl: " + zahl);
 }
 }
Eingabe ist im selben Verzeichnis als .class und .java mit folgendem Quelltext:
Code:
import java.io.*;
public class Eingabe {

  public static int inteingabe(){
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    try{
      return Integer.parseInt(in.readLine());
    } catch(Exception e){
      System.err.println("\ninvalid format !?!");
    }
    return Integer.MIN_VALUE;
  }

  public static String stringeingabe(){
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    try{
      return in.readLine();
    } catch(Exception e){}
    return null;
  }

  public static double doubleeingabe(){
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    try{
      return Double.parseDouble(in.readLine());
    } catch(Exception e){
      System.err.println("\ninvalid format !?!");
    }
    return Double.MIN_VALUE;
  }
}
Beim Kompilieren gibts keine Fehler nur unter Execute. Bei GanzeZahlen bekomm ich dann die Fehlermeldung:
Code:
java.lang.NoClassDefFoundError: Wi-Inf/GanzeZahlen (wrong name: GanzeZahlen)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
Exception in thread "main"
Hab ich was bei der Path setzung falsch gemacht?
THX für eure Hilfe.
Quetzalcoatl ist offline   Mit Zitat antworten
Alt 16.03.04, 08:37   #2 (permalink)
 
Registriert seit: 05.03.03
Deef Leistung: Facit NTK
Likes: 0
Standard

Einen Fehler hab ich entdeckt:

Klassen in Java sind abstract .. d.h. Du kannst mit ihnen nicht direkt arbeiten. Um mit einer Klasse arbeiten zu koennen, musst Du eine Instanz der Klassen bilden. (new)

Eingabe eingabe = new Eingabe();
zahl = eingabe.inteingabe();

Allerdings sagt dies IMO die Fehlermeldung nicht aus ... Zeigt Dein CLASSPATH auch auf das Verzeichnis, wo GanzeZahlen und Eingabe stehen?
Deef ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 16.03.04, 10:29   #3 (permalink)
 
Registriert seit: 08.01.04
typecast Leistung: Facit NTK
Likes: 0
Standard

@Deef: Das erste was du gesagt hast, stimmt so leider nicht ganz. Alle Methoden in Eingabe sind static. D.h. sie existieren schon bevor es eine instanz des Objektes gibt.
Das mit der CLASSPATH-Variablen kann ich mir leider auch nicht vorstellen, weil sich Eingabe im selben Verzeichniss befindet.
typecast ist offline   Mit Zitat antworten
Alt 16.03.04, 11:39   #4 (permalink)
Member of Honour
 
Benutzerbild von ivegotmail
 
Registriert seit: 28.05.03
ivegotmail Leistung: Z3
Likes: 1
Standard

Zitat:
Original von Deef
Klassen in Java sind abstract .. d.h. Du kannst mit ihnen nicht direkt arbeiten.
im prinzip hast du schon recht, nur sind in java nicht alle klassen abstract
das is der falsche begriff (besser wäre: klassen sind objekte und man braucht eine instanz davon um mit dieser zu arbeiten, wenns nicht grad static ist)
abstracte klassen haben das schlüsselwort abstract und von diesen klassen kann man keine instanzen erzeugen (weil die abstracten funktionen dort nur deklariert aber nicht implementiert werden)
man kann sie nur als basisklasse für eine andere klasse verwenden und dort muss man dann alle abstracten funkionen implementieren

@Quetzalcoatl
versuch mal den . zum CLASSPATH hinzuzufügen
damit auch im aktuellen arbeitsverzeichnis nach klassen gesucht wird
und du musst den java befehl dann auch in dem ordner ausführen wo die class dateien liegen
__________________
http://livehabo.hackerboard.de | http://livebb.sourceforge.net
ivegotmail ist offline   Mit Zitat antworten
Alt 16.03.04, 12:18   #5 (permalink)
beko
Guest
 
Likes:
Standard RE: Java: Kann Programme nicht ausführen

Zitat:
Original von Quetzalcoatl

Beim Kompilieren gibts keine Fehler nur unter Execute. Bei GanzeZahlen bekomm ich dann die Fehlermeldung:
Code:
java.lang.NoClassDefFoundError: Wi-Inf/GanzeZahlen (wrong name: GanzeZahlen)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
Exception in thread "main"
Ja - java.lang.NoClassDefFoundError - das sagt alles

Du hast zwar die Umgebungsvariablen für deine Javainstallation gesetzt, doch fehlt dir explizit das Verzeichnis in welchem du den Code ausfürhst.

Du hast 2 Möglichkeiten:

a.) dein "Working Directory" in welchem deine Projektfile liegen den globalen Pfaden hinzufügen
b.) die beiden .java Dateien in ein "package" du schieben.

Methode B ist vorzuziehen damit das Programm auch auf/in anderen Rechnern/Verzeichnissen läuft

Schreibe dazu ganz oben (noch vor den imports!) in deine beiden Java-Files etwa folgendes:
Code:
package myproject;
Nun sollte das klappen


Edit:
Bei mir klappt das Programm ansonsten so wie es ist einwandfrei:
Code:
Geben Sie eine Zahl ein: 23
Ihre Zahl: 23
  Mit Zitat antworten
Alt 16.03.04, 12:21   #6 (permalink)
beko
Guest
 
Likes:
Standard

Zitat:
Original von typecast
Das mit der CLASSPATH-Variablen kann ich mir leider auch nicht vorstellen, weil sich Eingabe im selben Verzeichniss befindet.
Das stimmt so leider nicht unbedingt. Meistens klappt so etwas aus einer Entwicklungsumgung heraus ohne expliziten Classpath da das Arbeitsverzeichnis standardmäßig mit in den Classpath genommen wird.

Edit: typecast hat allerdings dahingegen recht dass es auch mit einem Import von Eingabe allein funktionieren sollte
  Mit Zitat antworten
Alt 16.03.04, 15:14   #7 (permalink)
Themenstarter
 
Registriert seit: 18.04.02
Quetzalcoatl Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Meistens klappt so etwas aus einer Entwicklungsumgung heraus ohne expliziten Classpath da das Arbeitsverzeichnis standardmäßig mit in den Classpath genommen wird.
Das hab ich eben auch vermutet.

Ich habe jetzt einfach bei mir auf der Platte ein Ordner erstellt für das Projekt und den Classpath neu auf den Ordner gesetzt. Die Codes laufen jetzt.
THX nochmal für eure Hilfe.


Was mir nur grad auffällt ist das ich Plötzlich keine Java Applets mehr im Browser ausführen kann.
Gibt es eine Möglichkeit die Classpath für das ganze System zu setzen?
Quetzalcoatl ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Java: Kann Programme nicht ausführen
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Java Array NICHT ausführen wenn kein Eintrag vorhanden Havoc17 Code Kitchen 3 02.06.09 10:48
Greasemonkey: Java-Script im anderen Frame ausführen? theend (Web-) Design und webbasierte Sprachen 0 04.02.09 22:05
Kann Exe-Datei nicht ausführen mimili (In)security allgemein 3 29.06.05 17:13
Programme auf netzwerkrechner ausführen. kloppel (In)security allgemein 13 02.02.05 22:47
kann einige programme unter xp nicht löschen ..wieso??? martyberlin Die Problemzone 12 01.06.04 10:55


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61