unbekannter Fehler im Java Compiler
Herbert mit den grossen Ohren und dem kleinen Kinn
- java
Hi Leute,
ich fange gerade an Java zu lernen und lerne anhand eines Tutorials.
Obwohl ich den Code zig mal verglichen habe bekomme ich einen Fehler für folgende Zeile:
tabbedPane.addTab("Welcome", "Null", new Welcome(), "Welcome to the dive log");
Fehlermeldung: Can't resolve Symbol Welcome
Könnte mir vielleicht jemand freundlicherweise die Erleuchtung geben?
Danke
Hallo Herbert,
Die Klasse Welcome gibt es wohl nicht. Daher klappt das mit dem new Welcome() auch nicht.
Grüße
Daniel
Hi,
Die Klasse Welcome gibt es wohl nicht. Daher klappt das mit dem new Welcome() auch nicht.
Doch ich habe leere Klassen angelegt und kompiliert.
Die sind da.
hb
Hallo,
Doch ich habe leere Klassen angelegt und kompiliert.
Sicher, dass er die auch findet? Gib beim kompilieren mal den Pfad zu den Klassen mit -cp an oder teste nur das erzeugen der Klasse Welcome.
Grüße
Daniel
Hi,
Sicher, dass er die auch findet? Gib beim kompilieren mal den Pfad zu den Klassen mit -cp an oder teste nur das erzeugen der Klasse Welcome.
Also ich benutze Sun ONE Studio 5 als IDE (heute zum ersten Mal).
Ich habe keine Ahnung wie ich den Befehl -cp benutze.
Also, wie ganz am Anfang erwähnt, bin Anfänger.
Wie genau geht das?
Danke
Hallo,
Ich habe keine Ahnung wie ich den Befehl -cp benutze.
Das ist ne option für den Compiler. Bin davon ausgegangen, dass Du keine IDE benutzt. Mit Sun ONE Studio solltest Du das nicht brauchen. Jedenfalls findet der Kompiler aus irgend welchen Gründen die Klasse nicht. Vielleicht liegt sie im falschen Verzeichnis oder so. Wenn Du Klassen ohne Paketnamen verwendest, sollten die in keinem unterordner sein. Die IDE sieht diese Verzeichnisse idR als Pakete an.
Generell würde ich empfehlen nicht mit einer derart komplexen IDE anzufangen. Die ganzen Funktionen verwirren meiner Meinung nach nur. Schon gar nicht dann, wenn dein Javabuch nicht auch in diese Entwicklungsumgebung einführt.
Grüße
Daniel
Hi,
ja also ich wollte mich mal in diese IDE reinarbeiten.
ALLE Dateien liegen im gleichen Verueichnis "divelog".
Hier ist die Klasse die Probleme bereitet:
package divelog;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class DiveLog
{
private JFrame dlframe;
private JTabbedPane tabbedPane;
public DiveLog()
{
dlframe = new JFrame("A Java(TM) New Technology Dive Log");
dlframe.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
tabbedPane = new JTabbedPane(SwingConstants.LEFT);
tabbedPane.setBackground(Color.blue);
tabbedPane.setForeground(Color.white);
populateTabbedPane();
}
private void populateTabbedPane()
{
tabbedPane.addTab("Welcome", null, new Welcome(),"Welcome to the dive log");
tabbedPane.addTab("Diver Data", null, new Diver(), "Click here to enter diver data");
tabbedPane.addTab("Log Dives", null, new Dives(), "Click here to enter dives");
tabbedPane.addTab("Statistics", null, new Statistics(), "Click here to calculate statistics");
tabbedPane.addTab("Favorite website", null, new WebSite(), "Click here to see a website");
tabbedPane.addTab("Resources", null, new Resources(), "Click here to see a list of resources");
}
}
Die anderen klassen sind halt nur leere Gerüste (alle gleich bis auf den Klassenamen und natürlich dann auch den Dateinamen):
package divelog;
/**
* This class creates the content on the
* Welcome tabbed pane in the Dive Log
* application.
* @version 1.0
*/
//import for buttons, labels, and images
import javax.swing.*;
//import for layout manager
import java.awt.*;
public class Welcome extends JPanel
{ //Opens class
}//Closes class
Man kann da doch eigentlich nix verkehrt machen.
Könnte der Fehler in den Zeilen davor liegen?
Danke
Hallo,
Hi,
ja also ich wollte mich mal in diese IDE reinarbeiten.
ALLE Dateien liegen im gleichen Verueichnis "divelog".
mit dem Kommandozeilenkompiler klappt es, wenn man die Zeilen mit den anderen Klassen (new Diver, new Dives,...) auskommentiert, d.h. es liegt nicht am Quelltext.
Deine IDE kenne ich nicht, ich nehme Eclipse. Trotzdem wird es an der Konfiguration der IDE liegen.
probiere mal:
Probiere erst mal alles durch, dann solltest du es herausfinden. Es ist wie Daniel schon sagte durchaus zu empfehlen zuerst mit Texteditor und nicht mit einer IDE anzufangen, insbesonders wenn man noch nie mit einer IDE gearbeitet hat. Jedenfalls solange man noch dabei ist die Sprache zu lernen.
Dominik
Hi,
habe das Problem gefuden.
Ich habe das Verzeichnis einfach eine Ebene höher gemnountet und nun funzt es. Was ein blöder Fehler.
Trotzdem vielen Dank für die nette Hilfe von allen.
Gruss
HB
Hallo,
Ich habe das Verzeichnis einfach eine Ebene höher gemnountet und nun funzt es. Was ein blöder Fehler.
Die Verzeichnisse sind im Studio Pakete. Du kannst Javaklassen also nicht einfach in ein Unterverzeichnis kopieren. Die Package-Angabe muss dann auch dieses Verzeichniss angeben.
Wenn Du Unterverzeichnisse verwenden willst, um den Code übersichtlicher zu verwalten, musst Du diese Verzeichnisse wiederum mounten. Gibt da einen Menüpunkt dafür.
Grüße
Daniel
Hallo,
- heißen die Dateien .java?
Sieht er vermutlich nicht in der IDE. Wenn die Dateien mit der IDE erzeugt würden, stimmt das.
- sind die Namen richtig (Groß-/Kleinschreibung beachten)?
Ja das wäre ein möglicher Fehler. Allerdings macht das das Studio idR richtig. Ein nachträgliches ändern der Groß- und Kleinschreibung im Source könnte aber zu so einem Fehler führen.
- Klassenpfad für das aktuelle Projekt (Unterverzeichnis) konfiguriert?
Unterverzeichnisse sind im Studio immer Pakete. Das macht die IDE automatisch richtig.
- Wurde vorher ein neues Projekt angelegt?
Sollte nicht nötig sein.
- Müssen evtl. neue Dateien erst zum Projekt hinzugefügt werden?
Müssen sie bei dieser IDE nicht. Kompilieren kann man sie auch so.
Grüße
Daniel
habe d'ehre
tabbedPane.addTab("Welcome", "Null", new Welcome(), "Welcome to the dive log");
Fehlermeldung: Can't resolve Symbol Welcome
Anfuehrungszeichen bei "null" wegnehmen
Hi,
Anfuehrungszeichen bei "null" wegnehmen
Danke, das war mit sicherheit auch ein "blöder" Fehler von mir, allerdings hat es das Problem nicht gelöst. Habe "Null" auch nun klein geschrieben, aber es geht immer noch nicht.
Gruss
HB