Niki Roboter

Status
Nicht offen für weitere Antworten.
S

Supper

Gast
hallo,

also ich hab ein problem das mich jetzt schon rund einen Monat nervt und ich will es endlich schaffen zu lösen.

Ich hab schon öfter probiert im mIRC hilfe zubekommen, hat aber nicht wirklich geholfen.


Mein Problem:

Ich benutzt eclipse und versuche damit das kleine java-program Niki zu benutzten. Schaffe dies leider aber nicht.

Ich habe zunächste ein neues project erstellt mit den Dateien:

Niki.jar (das vorgegeben Programm von meiner Schule [glaube, dass man es Programm nennen könnte])

und

einer von mir selbst geschriebenen xxx.java Datei



Beim erstellen eines neuen projects habe ich zunächst die niki.jar hinzugefügt. Dazu hatte ich gleichzeitig die xxx.java datei offen (im eclipse).

Als ich das project fertig erstellt hatte, ist mir gleich aufgefallen das bei dem Project ein kleines rotes kreuz war und bei einem Unterpunkt (default package) in welche die xxx.java datei vorhanden war, war ebenfalls eins.

Als ich einmal die xxx.java nicht im Project enthalten hatte, hatte ich dieses Problem nicht. Aber als ich auf run... die java application starten wollte. Ist einzig und allein das Programm gestartet und nicht das Programm (niki.jar) + den Ablauf (xxx.java)


Also ich habe absolut keine ahnung wie ich die niki.jar + xxx.java abspielen kann (mit e
 
G

Gast

Gast
du machst ein project mit deiner java datei drin und fügst dann unter build path deine jar dem projekt hinzu

dann kannst du mit import die klassen benutzen
 

Acha

Bekanntes Mitglied
Genau, da Dein *.jar schon ein gepacktes Archiv ist, kannst Du die Funktionalitäten nur als Bibliothek dazuladen und nicht im Eclipse öffnen!

MFG

Acha
 
S

Supper

Gast
Die .jar datei hab ich ja schon zu meinem project hinzugefpgt.

Und sie lässt sich auch wunderbar mit run ... und dann unter java application aussführen.

Nur zusammen mit meiner xxx.java datei passiert nichts.


Diese xxx.java datei ist aber notwendig damit überhaupt etwas passiert mit dem Programm

also in diesem fall:

Soll ein Robot in einem Koodinatennetz nach meinen befehen(xxx.java) herumlaufen.
 

Corpse

Mitglied
Vielleicht eine dumme Frage, aber hast du in deinem Programm die main Methode implementiert bzw. führst du diese dann auch wirklich aus, wenn du auf "RUN" klickst?
mfG
Corpse
 
G

Guest

Gast
kenn mich bei eclipse und sonstige java sachen leider wenig aus und weiß daher auch nicht wirklich was eine main ist.


kann hier ja mal die xxx.java datei reinposten (ist net lang ;))

import niki.Welt;
import niki.Niki;

public class meinProgramm{
public static void main(String[] args){
Welt meineWelt = new Welt("unbekannte.welt");
Niki meinRoboter = new Niki(meineWelt);
meinRoboter.vor();
meinRoboter.vor();
meinRoboter.vor();
meinRoboter.vor();
meinRoboter.links();
}
}




bei run ... java application hab ich unter main: niki.Niki eingegeben (bzw. wurde mir vorgegeben)
 
G

Guest

Gast
mein problem liegt darin, dass ich trotz dem project (mit der niki.jar) und dem geöffnetem xxx.java ding das programm nicht zum laufen kriegen.

Wenn ich auf run java application drücke öffnet sich nur das program ohne die xxx.java (also ob er die xxx.java einfach ignoriert)

in der Konsole steht dies hier:

Fehler: Welt-Datei nicht gefunden oder Format falsch
0
1
2
3
0
1
2
3
0
1
2
3
 
S

Supper

Gast
Die dateie "unbekannte.welt" befindet sich in dem selben ordner wie niki.jar und xxx.java
 

Murray

Top Contributor
Anonymous hat gesagt.:
bei run ... java application hab ich unter main: niki.Niki eingegeben (bzw. wurde mir vorgegeben)

Du startest also das Programm niki.Niki; es wird also die main-Methode der Klasse Niki aus dem Package niki aufgerufen.

Was du gepostet hast, ist eine Datei xxx.java, in der es eine Klasse meinProgramm gibt, in der wieder eine main-Methode definiert wird. Soll nicht eigentlich die ausgeführt werden?

Auf jeden Fall musst du noch dafür sorgen, dass der Name der Quelldatei zur darin deklarierten Klasse passt, sonst wird sich das nicht übersetzen lassen. Und dann ist es eigentlich Standard, Klassennamen mit einem Großbuchstaben anfangen zu lassen:

Also:
MeinProgramm.java:
Code:
import niki.Welt;
import niki.Niki;

public class MeinProgramm{

  public static void main(String[] args){
    Welt meineWelt = new Welt("unbekannte.welt");
    Niki meinRoboter = new Niki(meineWelt);

    meinRoboter.vor();
    meinRoboter.vor();
    meinRoboter.vor();
    meinRoboter.vor();
    meinRoboter.links();
  }
}

Und dann MeinProgramm ausführen (und nicht niki.Niki).
 

Supper

Mitglied
Wenn ich unter run java application bei main Class meinProgramm eingeben zeigt er mir immer einen error:

java.lang.NoClassDefFoundError: meinProgramm
Exception in thread "main"

Hab ich das jetzt richtig verstanden, dass ich meine xxx.java datei offen haben muss und im project die niki.jar datei enthalten sein muss?
 

Supper

Mitglied
die datei ist offen aber heißt auch in ihrem verzeichnis meinProgramm.java (meinProgramm.java = xxx.java)
kommt immernoch der gleiche fehler:
java.lang.NoClassDefFoundError: meinProgramm
Exception in thread "main"


hab das ganze auch mal ohne offener meinProgramm.java Datei probiert. Geht auch nicht
 
G

Gast

Gast
1. auf gross und klein schreibung achten, besonders bei einem gewissen m ;)

2. ob die datei in eclipse offen ist oder nicht hat absolut garnichts damit zutun !!!!
 

Corpse

Mitglied
Das mit der Namenskonvention ist zwar richtig und sollte natürlich auch eingehalten werden, verursacht aber diesen Fehler nicht.

Sofern der Code kompiliert wurde sollte eine meinProgramm.class Datei von Eclipse erstellt werden. Öffne mal die Eingabeaufforderung und wechsel in das Verzeichnis in der eben diese meinProgramm.class liegt und für dann den Befehlt "java meinProgramm" aus. Funktioniert das?
mfG
Corpse
 

Supper

Mitglied
Kenn mich leider nicht mit eclipse aus

Wo finde ich denn die Eingabeaufforderung.

Den befehl java meinProgramm benutzten wir auch immer mit der schule, also wäre es gut möglich, dass es damit funktioniert.
 

Corpse

Mitglied
Eingabeauforderung hat nichts mit eclipse zu tun ;)
einfach mal auf "Start"->"Ausführen" und dann eben in das jeweilige Verzeichnis wechseln.
mfG
Corpse
 

Supper

Mitglied
Wenn ich es über die Eingabeaufforderung probiere gehts leider auch nicht


Das hier wird nur angezeigt:
D:\programs\niki>java meinProgramm
Exception in thread "main" java.lang.ClassFormatError: Incompatible m
1768779887 in class file meinProgramm
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
 

Supper

Mitglied
kennt ihr vielleicht noch eine andere Möglichkeit wie ich das programm (niki.jar) mit der meinProgramm.java datei zum Laufen bekomme?

Vielleicht mit einem anderem Programm nicht mit eclipse


Diese Meldung kam immer wenn ich nun die niki.jar öffnen wollte: (failed to load Main-Class manifest attribute) Hab dann mal ein wenig im internet geguckt und das dort gefunden:



Failed to load Main-Class manifest attribute
Das ist in Ordnung, wenn die jar-Datei eine Programmbibliothek repräsentiert und kein Programm. Natürlich läßt sich in diesem Fall auch kein Programm starten.

Lösung: Es ist sinnlos, Programmbibliotheken starten zu wollen.


oder wüsste jemand einen editor für windows der diese Befehle ausführen könnte (kenn leider nur die Befehle):

javac
java
cd
mkdir
rmdir
etc.


Denn diesen Editor benutzten wir bei uns an der schule nur leider ist dieser nur für Linux.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben