[gelöst] Kompilieren von .java-Dateien per javac

Status
Nicht offen für weitere Antworten.

Bloodredangel

Mitglied
Hallo, mein Problem ist, dass die kompilierten Java-Dateien nicht ausführbar sind.
Habe mittlerweile gelesen, dass man beim kompilieren den CLASSPATH der JRE mit angeben muss (angeblich die rt.jar). Mein Befehl sieht daher mittlerweile so aus:

"javac -cp /opt/eclipse/plugins/org.junit4_4.3.1/junit.jar -cp /usr/lib/jvm/java-6-sun-1.6.0.10 Dice.java TestDice.java"

Ziel ist eigentlich, JUnits auf der Konsole zum laufen zu bringen, aber bei
"java TestDice"
verabschiedet sich das Programm mit folgendem Fehler:
"Exception in thread "main" java.lang.NoClassDefFoundError: TestDice (wrong name: main/TestDice)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: TestDice. Program will exit."

Ich denke mir fehlt noch irgendeine CLASSPATH-Angabe, aber er meckert darüber ja leider beim kompilieren nicht (also der javac Befehl geht Problemlos durch).

Weiß jemand was fehlt / was ich grundlegen falsch mache?

Danke im voraus
Bloodredangel
 
Zuletzt bearbeitet:

mvitz

Top Contributor
java -cp /opt/eclipse/plugins/org.junit4_4.3.1/junit.jar org.junit.runner.JUnitCore TestDice

würde ich mal vermuten. Du hast ja keine Main und kannst deswegen deine Klasse nciht ausführen. Deswegen muss der Junit Runner deine Klasse ausführen.
 

Bloodredangel

Mitglied
Mein Fehler, dass ich den Quellcode nicht gepostet habe. ;) Für eine Main-Methode ist gesorgt:

Code:
package main;

public class Dice {
    private static Integer number = 1;    
    
    public static Integer rollDice(){
        Dice.number = new Integer( (int) Math.floor(Math.random()*10*6) );
        return Dice.number;
    }
    
    public static Integer getNumber(){
        return Dice.number;
    }
}

Code:
package main;

import static org.junit.Assert.assertTrue;
import org.junit.Test;


public class TestDice {
    
    public TestDice(){
        
    }
    
    @Test
    public void testDiceRoll(){
        assertTrue(Dice.rollDice() == Dice.getNumber());
    }
    
    public static void main(final String[] args) {
        /*System.out.println(
                org.junit.runner.JUnitCore.runClasses(TestDice.class)
                .toString());*/
        System.out.println("Test");
    }
}

Fehler dürfte übrigens nicht am JUnit liegen, da auch ein anderes Programm, was eine main-Methode hat, nicht funktioniert. Dabei bin ich mir sicher, dass ich das schonmal lauffähig kompiliert hatte ... *seufz*. Soweit ich mich erinnere musste ich damals die JRE direkt mit einbinden, aber mache ich das nicht mit dem rt.jar CLASSPATH?

Gruß ich
 

Ark

Top Contributor
Vielleicht nötig (bzw. clever):
Code:
javac -d . -cp /opt/eclipse/plugins/org.junit4_4.3.1/junit.jar -cp /usr/lib/jvm/java-6-sun-1.6.0.10 *.java
Auf jeden Fall nötig:
Code:
java main.TestDice
java muss so dort aufgerufen werden, wo das Verzeichnis main liegt, weil die Klasse mit der main()-Methode in deinem Fall in einem Paket namens main liegt.

Ark
 

Bloodredangel

Mitglied
Wie du schon richtig vermutet hast (und es mir grad selbst aufgefallen ist), habe ich die package-Struktur missachtet und direkt im package kompiliert & ausgeführt. Jetzt läuft es erstmal! =D Muss man erstmal wissen, dass man die Dateien in den Packages ansprechen muss und nicht darin sein darf (ich hatte zur Lösung ersmal die package-Information im Quellcode entfernt, aber mit dem Wissen wie es richtig geht ist natürlich schöner). Danke Ark!

Hab mich dann gleich mal an den JUnit-Test versucht und gemerkt, dass ich jetzt auf deinen Hinweis zurückgreifen konnte habi55. =) Muss tatsächlich den Runner angeben, auch wenn es in der Main drinsteht usw. Jetzt läuft das Programm ohne Laufzeitfehler und die JUnit-Information wird auch ausgegeben. *freu*.

Das einzige Problem besteht jetzt mit JUnit: Es sagt "Could not find class: main.TestDice.class". Ist an dem aufruf irgendwas unvollständig / falsch?

Code:
public static void main(final String[] args) {
        org.junit.runner.JUnitCore.runClasses(TestDice.class);
        System.out.println("Test");
    }
Gruß und vielen Dank an euch beide!
Bloodredangel

Edit: Hab im Internet geforscht und herausgefunden, dass ich immer den eigenen Classpath dafür angeben muss. Nehme jetzt auch die main-Methode von JUnitCore, aber der Fehler besteht leider weiter. ;(
 
Zuletzt bearbeitet:

Bloodredangel

Mitglied
Problem gelöst!
Wenn ich den Runner auf der Konsole nehme, versucht er nicht die Klasse mit java zu starten, sondern nimmt das ja direkt als Eingabe für seine main-Methode. Einfach mit java aufrufen hat zwar Anfangs warumauchimmer nicht funktioniert, aber jetzt bringt es die gewünschten Ergebnisse. :toll:
:rtfm: bildet! Auch wenn der Weg manchmal schon für einfache Dinge recht lang dauert. ^^

Gruß Bloodredangel

Edit: Achso der Fehler war, dass es "main.TestDice" heißen muss und nicht "TestDice.class". API zum Runner lesen hat viel gebracht. =) Diesen Namen dann so übergeben:
org.junit.runner.JUnitCore.main("main.TestDice");
und es klappt. runClasses ist nicht für den Direktaufruf gedacht *schäm*.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Aufgabe gelöst, lässt sich aber nicht kompilieren Java Basics - Anfänger-Themen 3
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
H Aufgabe so richtig gelöst? Java Basics - Anfänger-Themen 14
P Erste Schritte [gelöst]Erzeugen einer Klasse aus der Klassenbibliothek Java Basics - Anfänger-Themen 4
F Erste Schritte (Gelöst) Anfängerfrage Arraylist ausserhalb der Main Methode Java Basics - Anfänger-Themen 2
X problem mit equals.gelöst Java Basics - Anfänger-Themen 2
N Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 7
M Ist diese Aufgabe zu umständlich gelöst? Java Basics - Anfänger-Themen 9
J Vereinigung von 2 Mengen [gelöst] Java Basics - Anfänger-Themen 2
W ProcessBuilder Problem -->gelöst - - Jetzt JEditorPane Problem Java Basics - Anfänger-Themen 6
A [gelöst]Array mit ArrayList-Einträgen Java Basics - Anfänger-Themen 12
B While Schleife steuern (gelöst) Java Basics - Anfänger-Themen 2
Strahlungsleck [gelöst]File Pfadangabe funktioniert nicht mit Servername/IP Java Basics - Anfänger-Themen 2
A [gelöst]Aus der Klasse heraus auf ein anderes Objekt zugreifen Java Basics - Anfänger-Themen 4
A [gelöst]Zwei Ausgaben, die eigentlich gleich sein sollten Java Basics - Anfänger-Themen 9
A [gelöst]Objekte in einer Schleife erzeugen Java Basics - Anfänger-Themen 9
A [gelöst]ArrayList Java Basics - Anfänger-Themen 6
J Aufgabenverteilung über einen Zeitraum: So geschickt gelöst? Java Basics - Anfänger-Themen 3
S [gelöst] Wie kann ich später über Objekte zeichnen Java Basics - Anfänger-Themen 2
D Probleme bei Code Portierung von C# nach Java [Gelöst] Java Basics - Anfänger-Themen 4
L [Gelöst:] positive Null Java Basics - Anfänger-Themen 4
L Gelöst: Negative Eingaben sollen verweigert werden Java Basics - Anfänger-Themen 3
L [Gelöst] Cannot make a static reference ... Java Basics - Anfänger-Themen 12
L [gelöst] Einfache Aufgabe, läuft aber nicht. Java Basics - Anfänger-Themen 8
vogella *Gelöst *Im Programm warten (wait()) Java Basics - Anfänger-Themen 2
S die konsole[gelöst] Java Basics - Anfänger-Themen 16
S schaltjahr (gelöst zu 90 %), allerdings folgeprob :/ Java Basics - Anfänger-Themen 18
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
S Kompilieren einer dekompiliertern JAR Java Basics - Anfänger-Themen 23
N Arbeitsspeicher nach kompilieren immer voller Java Basics - Anfänger-Themen 6
M Classpath Befehl zum Kompilieren um die Option classpath erweitern. Java Basics - Anfänger-Themen 5
L Java-Programm kompilieren Java Basics - Anfänger-Themen 24
J Java Datei lässt sich nicht kompilieren Java Basics - Anfänger-Themen 3
N Erste Schritte kompilieren tra lala Java Basics - Anfänger-Themen 2
J BlueJ - kompilieren - und wie weit kommt man mit BlueJ? Java Basics - Anfänger-Themen 4
D Übung Felder java Error kompilieren Java Basics - Anfänger-Themen 4
B Compiler-Fehler [Lejos] [RCX] Programm lässt sich nicht kompilieren Java Basics - Anfänger-Themen 5
J Kompilieren von HelloWorld Beispiel schlägt fehl Java Basics - Anfänger-Themen 7
P Compiler-Fehler .java Dateien kompilieren und .class Dateien zur .jar Java Basics - Anfänger-Themen 4
U kompilieren geht nicht wg. Formatierung wahrscheinlich Java Basics - Anfänger-Themen 7
P Programm zum kompilieren Java Basics - Anfänger-Themen 2
A Erste Schritte kompilieren Java Basics - Anfänger-Themen 14
V Compiler-Fehler Programm lässt sich nicht kompilieren Java Basics - Anfänger-Themen 22
J Kompilieren in anderern Java-Version? Java Basics - Anfänger-Themen 15
J Plattformunabhängigkeitstest fehlgeschlagen! Für ältere JRE kompilieren? Java Basics - Anfänger-Themen 11
J Java-Projekt kompilieren Java Basics - Anfänger-Themen 5
M Kompilieren Java Basics - Anfänger-Themen 7
J Probleme bei kompilieren ... Bitte um Hilfe Java Basics - Anfänger-Themen 27
D javac zum Kompilieren von mehreren Dateien Java Basics - Anfänger-Themen 6
C Source File bearbeiten und neu Kompilieren Java Basics - Anfänger-Themen 5
K Fehlermeldung beim kompilieren Java Basics - Anfänger-Themen 8
J Kompilieren mit Package funktioniert nicht Java Basics - Anfänger-Themen 40
E Input/Output IOException beim Kompilieren Java Basics - Anfänger-Themen 3
T Kompilieren Java Basics - Anfänger-Themen 4
L Öffnen des Programms nach kompilieren nicht möglich Java Basics - Anfänger-Themen 3
O ausgabe spinnt trotz erfolgreichem kompilieren Java Basics - Anfänger-Themen 2
S Beim kompilieren kommt Ant Build.Was ist das? Java Basics - Anfänger-Themen 8
S Problem beim Kompilieren - cannot find symbol - constructor() Java Basics - Anfänger-Themen 12
K Programm zum Kompilieren von java-Dateien Java Basics - Anfänger-Themen 17
M Kompilieren - Eclipse ja, Konsole nein Java Basics - Anfänger-Themen 15
M Keine Ausgabe nach erfolgreichem Kompilieren (javac, ubuntu) Java Basics - Anfänger-Themen 10
J problem (kann meinen Code nicht kompilieren) Java Basics - Anfänger-Themen 3
T Programm läßt sich nicht kompilieren Java Basics - Anfänger-Themen 4
H Problem beim kompilieren Java Basics - Anfänger-Themen 3
W Eclipse kompilieren und klasse von command ausführen Java Basics - Anfänger-Themen 18
J Applet mit Bibliotheken kompilieren Java Basics - Anfänger-Themen 6
L welchen fehler übersehe ich? ...kompilieren funkt. nicht Java Basics - Anfänger-Themen 23
R Quelltext einfügen und kompilieren Java Basics - Anfänger-Themen 4
Sebi Probleme beim Kompilieren Java Basics - Anfänger-Themen 11
B Java Datei unter Solaris kompilieren Java Basics - Anfänger-Themen 2
P Pakete kompilieren.... Java Basics - Anfänger-Themen 2
E Code kompilieren geht aber ausführen nicht Java Basics - Anfänger-Themen 3
L Java ChatServer kompilieren/starten - aber wie? Java Basics - Anfänger-Themen 2
D Problem beim Kompilieren Java Basics - Anfänger-Themen 4
C Java kompilieren ? Java Basics - Anfänger-Themen 9
M 1.5er Klassen kompilieren mit 1.6er javac Java Basics - Anfänger-Themen 5
B Probleme beim Kompilieren. Java Basics - Anfänger-Themen 12
O Linux - Fehler beim kompilieren - HILFE Java Basics - Anfänger-Themen 4
J Aus einem Java Programm eine .java datei Kompilieren Java Basics - Anfänger-Themen 6
P Wav spielt nach dem Kompilieren nicht mehr. Java Basics - Anfänger-Themen 2
P Konsolenprogramm geht nicht über das Kompilieren hinaus Java Basics - Anfänger-Themen 12
S Fehlermeldung beim Kompilieren Java Basics - Anfänger-Themen 12
S Problem beim kompilieren mit Java 1.4 Java Basics - Anfänger-Themen 4
S mit GCJ nativ Kompilieren Java Basics - Anfänger-Themen 3
C manuelles Kompilieren Java Basics - Anfänger-Themen 2
V Fehler beim Kompilieren der Unterklasse Java Basics - Anfänger-Themen 2
B Ich kann mein Java Programm net Kompilieren? Java Basics - Anfänger-Themen 8
G Web-Application kompilieren Java Basics - Anfänger-Themen 3
J Kann mein Programm nicht Kompilieren? Java Basics - Anfänger-Themen 9
G Fehler beim kompilieren Java Basics - Anfänger-Themen 18
S Probleme beim Java Kompilieren + ausführen Java Basics - Anfänger-Themen 6
M probleme beim kompilieren / übersetzen ! Systemeinstellung ? Java Basics - Anfänger-Themen 5
B jar Datei lasst sich nicht kompilieren Java Basics - Anfänger-Themen 4
F Probleme mit dem Ausführen/Kompilieren Java Basics - Anfänger-Themen 5
D [JCreator] Einrichten - Fehler beim Kompilieren Java Basics - Anfänger-Themen 14
F kompilieren für handy Java Basics - Anfänger-Themen 3
K Problem mit Kompilieren Java Basics - Anfänger-Themen 3
D Fehler beim kompilieren einer Java-Datei (javac) Java Basics - Anfänger-Themen 6
L quelltext kompilieren Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben