Compilerproblem

Status
Nicht offen für weitere Antworten.

brasilian

Aktives Mitglied
Hallo,

ich bin seit einiger Zeit Java am programmieren, und bis jetzt macht die Sprache echt Spaß, alles ging reibungslos und man kann tolle Sachen machen.

Heute Morgen hab ich dann aber einen Schock bekommen, mein Compiler kriegt nichts vernünftiges mehr auf der Reihe. Ich habe an meinem System absolut gar nichts verändert, weder etwas gelöscht noch etwas hinzugefügt, doch der Java-Compiler ist nicht mehr in der Lage meine Quelltexte in Bytecode zu übersetzen.

Ich benutze das JDK 1.42 und den Java-Editor (von Gerhard Röhner - erster Eintrag bei Google unter Stichwort "Java-Editor") und bin mit beiden bis jetzt sehr gut gefahren, doch jetzt hab ich halt dieses Problem.

Ich habe auch schon komplett Java deinstalliert sowie die IDE und beide wieder neu drauf installiert, doch das Problem bleibt. Ich kann jedoch Bytecodes interpretieren und ausführen, aber keinen Quelltext compilieren.

Ich will euch zwei ganz simple Programme beifügen, wo vor allem die Fehlermeldung vielleicht Aufschluss über mein Problem geben kann.
Ich habe auch schon den Jikes-Compiler von IBM benutzt, doch der hilft mir auch nicht

Nummer 1:

Code:
import javax.swing.*;

public class sternchen
{
  public static void main (String args[])
  {
   String eingabe;
   int anzahl, counter = 0;
   eingabe =  JOptionPane.showInputDialog("Geben sie die Anzahl der Sternchen ein");
   anzahl = Integer.parseInt(eingabe);
   while (anzahl > counter)
   {
     System.out.print("*");
     counter++;
   }
  }
}

Die Fehlermeldungen:

Compiliere C:\Java\MeineProgramme\sternchen.java mit dem Java-Compiler
sternchen.java:9: incompatible types
found: java.lang.String
required: String
eingabe = JOptionPane.showInputDialog("Geben sie die Anzahl der Sternchen ein");

sternchen.java:10: cannot resolve symbol
symbol: methode parseInt (String)
location: class java.lang.Integer
anzahl = Integer.parseInt(eingabe);


.\String.java:8: incompatible types
found: java.lang.String
required: String
eingabe = JOptionPane.showInputDialog("String: ");



Nummer 2:

Code:
import java.awt.*;

public class punkt
{
  public static void main (String args[])
  {
    Point P = new Point();
    P.x = 12;
    P.y = 34;
    System.out.print(P.toString());
  }
}

Die Fehlermeldungen:

Compiliere C:\Java\MeineProgramme\punkt.java mit dem Java-Compiler
.\String.java:8: incompatible types
found: java.lang.String
required: String
eingabe = JOptionPane.showInputDialog("String: ");



Die beiden Programme sollen nicht dazu dienen, noch nie da gewesene Quelltexte zu zeigen.... , sondern zeigen dass diese Programme eigentlich funktionieren müssen, da sie syntaktisch und semantisch korrekt sind. Ich werde wohl irgendein tieferes Problem haben und auffällig find ich, dass der Compiler immer etwas mit Strings ausgibt.

Ich bin momenatn ziemlich ratlos, da ich weiter mit der "Insel" (Java ist auch eine Insel) programmieren möchte, dies aber nur effektiv geht, wenn Java mitspielt.

Ich hoffe ihr habt solch ein ähnliches Problem schonmal gehabt und gelöst, denn ich möchte nicht einen Tag meiner kostbaren Ferien damit opfern, meinen PC zu formatieren und alles wieder drauf zu schmeissen => ABWARTEN ^^

Vielen Dank im Vorraus an euch alle !
 

L-ectron-X

Gesperrter Benutzer
Hm, schwierig hier eine Aussage zu machen. ???:L
Der Code ist in Ordnung, ich arbeite mit den selben Werkzeugen wie Du, habe jedoch beim Kompilieren keine Fehlermeldungen erhalten. Interessant finde ich die Fehlermeldung bei Deinem zweiten Code-Beispiel. Weit und breit keine Spur von einer JOptionPane im Code, der Compiler muckiert hier aber wegen einer solchen.
Vielleicht solltest Du Dein System mal mit einem guten Anti-Virus-Programm untersuchen, ob sich da ein Schädling auf Deiner Festplatte "zuhause fühlt". Manchmal sind derartige Programme für die merkwürdigsten Fehler verantwortlich.
 

brasilian

Aktives Mitglied
Schön dass jemand so schnell geantwortet hat, dies stärkt schonmal die Moral.

Ich habe mein System auch schon mit der neusten Version des AntiVirX durchgescannt auf intensiv (80 Min :gaen: )
und habe einen Schädling gestern gefunden und eliminiert, doch dies ändert leider gar nichts an der Java-Problematik.

Es scheint schon fast so, dass ich wohl nicht an einem FORMAT C: :autsch: vorbeikomme.
 

L-ectron-X

Gesperrter Benutzer
Hm, sieht so aus, als ob der Schädling ganze Arbeit geleistet hätte. Hast Du Java vor oder nach der Eleminierung des Virus' noch mal installiert? Falls Du das Java-SDK nach der erfolgreichen Entfernung des Virus neu installiert hast und es immer noch nicht funktionieren will, hat der Virus möglicherweise auch andere, vom System benötigte, Dateien zerstört. Dann hilft in den meisten fällen nur noch eine Neuinstallation.

Zu Deinem Anti-Virus-Programm bleibt zu sagen, dass es nicht viel taugen kann. Gute Programme bemerken es, wenn ein Virus versucht, sich einzunisten und blockieren mindestens diesen Vorgang mit einer entsprechenden Meldung.
 

brasilian

Aktives Mitglied
Ich hab das SDK nochmal versucht nach der Eleminierung des Virus zu installieren doch brachte dies keine Fortschritte.

Ich werde morgen mal formatieren, und dann hoffentlich hier posten können, dass alles wieder in Butter ist.

Vielen Dank für deine Hilfe L-ectron-X !
 

Campino

Top Contributor
Ich auch. Bei mir ging plotzlich nichts mehr, auch das interpretieren von Bytecode nicht. Das einzige was seit dem letzten Funktionieren neu drauf gekommen war, ist eine 30-Tage-Testversion von Femlab. Die hatte ganz viele .jar-Archive dabei und ging nach 12h auch nich mehr (etwa Zeitgleich mit dem Java-Ausfall) Nach Viren hab ich mit der AntiVir-Personal Edition gesucht, und zwar schon so oft das ich nicht mal mehr ein halbes Bit an Virus drauf haben dürfte...Mein Compiler bricht im gegensatz zu dem von Brasilian allerdings sofort ab ("Ein Fehler ist aufgetreten, soll ein Problembericht gesendet werden?"). Hat jemand Ahnung was es sein könnte??
 
G

Guest

Gast
Ich habe eben den PC komplett formatiert und nach Windows und den Treibern das SDK 1.4.2 installiert und dann den Java-Editor.

Es klappt aber nicht ! :oops:

Ich bekomme die selben Fehlermeldungen wie vorher. Ich denke einen Virus können wir inzwischen ausschliessen (wir wollen es ja nicht mit einem Boot-Virus übertreiben).
Ich bin persönlich leicht schockiert, da ich auf meinem System Java schon über einen Zeitraum von mehreren Wochen laufen gelassen habe und nie Probleme hatte. Außerdem ist die Installation des SDK's und des Editors absolut simple, doch es läuft nicht.

Ich will noch zwei kleine Sachen posten, die ich nicht ganz verstehe:

1)

Code:
public class test
{
  public static void main ()            // ohne String args[]
  {
    // System.out.println("Test it");

  }
}

Dies kompelliert er ohne Fehlermeldung !

2)

Code:
public class test
{
  public static void main ()
  {
    System.out.println("Test it");

  }
}

Dies auch, aber mein ausführen gibt es ne java.lang.NoSuchMethodError; Main Meldung.

Wenn ich die Zeile
Code:
public static void main ()
durch
Code:
public static void main (String args[])
ersetze (beim zweiten Beispiel), dann gibt es folgende Fehlermeldung beim Compilieren:
 

brasilian

Aktives Mitglied
Compiliere C:\Java\MeineProgramme\test.java mit dem Java-Compiler
.\String.java:8: incompatible types
found: java.lang.String
required: String
eingabe = JOptionPane.showInputDialog("String: ");



P.S: Hab mich wohl eben nicht richtig eingeloggt, den der Gast bin ich, tut mir Leid.
 

brasilian

Aktives Mitglied
Ich habe in meinen Büchern und im Forum nochwas rumgestöbert und etwas für die Lösung des Problems gefunden.

Das Verzeichis wo sich Java bei mir befindet, lautet C:\Java

Ich habe dann die MS-Dos-Eingabeaufforderung aufgerufen, und die Programme versucht zu compilieren:

C:\Java\bin\javac C:\Java-Programme\MeineProgramme\beispiel1.java

Jedes mal wenn ich so ein Programm compiliere, kommt keine Meldung sondern nach einer guten Sekunde eine neue Eingabeaufforderung. Wenn ich mich nicht täusche ist keine Meldung eine gute Meldung, und die Programme sollten erfolgreich kompiliert sein, stimmt dies ?

Ich gehe mal von "Ja" aus => dann sollte der Compiler "OK" sein, und das Problem die Verbindung zur IDE sein, oder ?

Ich habe wie gesagt nur auf MS-Dos Basis kompiliert, doch da ging alles, mit dem Java-Editor hatte ich keinen Erfolg.
Ich habe mal ein paar Programme von dem Pfad C:\Java-Programme\MeineProgramme in dem Pfad C:\Java\bin\
kopiert und dann anschließend mit dem Java-Editor versucht zu compilieren, dies geht super ! :D

Ich bin aber noch nicht ganz zufrieden, da ich eigentlich keine Lust habe alle Programme in Programme in diesem Ordner zu speichern und auszuführen, dies ist nach meiner Ansicht nicht sonderlich nützlich für künftige Programme.

Ich möchte sehr gerne wieder alle Programme, von dem alten Pfad kompilieren können.

Eigentlich sollte dies nur eine Einstellungssache des Java-Compilers unter dem Java-Editor sein, doch sehe ich sie nicht :shock:

Hier ein Auszug aus dem Konfigurationsmenu des Java-Editors:

konfig.jpg



Der Jikes-Compiler von IBM ist soviel ich weiß nur optional und muß nicht vorhanden sein.


Kann es vielleicht auch sein, dass ich noch einen Parameter umschreiben muß, oder einen Classpath oder sowas angeben muß, damit der Compiler richtig arbeitet ?

Ich würd mich sehr freuen wenn ihr mir helfen könntet !


Edit von L-ectron-X: Image-Tags repariert.
 

L-ectron-X

Gesperrter Benutzer
Der Java-Compiler gibt bei erfolgreicher Kompilierung keine Meldung aus.

Unter welchem Betriebssystem arbeitest Du? Möglicherweise muss noch der Classpath angepasst werden.
Die Konfigurationsseite vom Java-Editor sieht bei mir ähnlich aus. Jikes ist zum Betrieb des Programmes nicht erforderlich.
 

thE_29

Top Contributor
nur so am Rande

JOptionPane.showInputDialog("Geben sie die Anzahl der Sternchen ein")

ist sicherlich falsch, da er das will

public static String showInputDialog(Component parentComponent,
Object message,
String title,
int messageType)


und ein String sicherlich kein Component ist!



EDIT: Es geht doch mit dem ,hab den Konstruktor net gesehen ;)

EDIT2: dbac hats grad geschrieben ;)
 
B

bygones

Gast
thE_29 hat gesagt.:
nur so am Rande

JOptionPane.showInputDialog("Geben sie die Anzahl der Sternchen ein")

ist sicherlich falsch, da er das will

public static String showInputDialog(Component parentComponent,
Object message,
String title,
int messageType)

und ein String sicherlich kein Component ist!
Nicht ganz - gibt mehr solche Methoden: http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JOptionPane.html#showInputDialog(java.lang.Object)
 

L-ectron-X

Gesperrter Benutzer
@brasilian: Die beiden haben natürlich Recht. Aber nur dann, wenn Du im Java-Editor weitere Tabs mit Klassen offen hast und Deine Klasse Sternchen einen Fehler aufweisen würde (was sie nicht macht). Wenn Du nur ein Tab z.B mit Deiner Punkt-Klasse offen hast, darf auf keinen Fall der Compiler etwas mit einem JOptionPane muckieren.
Ansonsten bin ich natürlich davon ausgegangen, dass Du nur ein Tab zur Kompilierzeit offen hattest.
 

brasilian

Aktives Mitglied
Ich habe WinME als Betriebssystem.

Mir ist der Begriff Tab nicht geläufig, ich würde damit TABulator oder TABelle verbinden, doch dies wird es wohl nicht sein, meint ihr damit ein Programm (bzw. ein Java-Programm), und das ich dann halt mehrere meiner Programme geöffnet habe und dann compiliere ?

Also bis jetzt habe ich nie darauf geachtet, meistens hab ich aber immer nur ein Programm auf, und compiliere es einzelen.
 

L-ectron-X

Gesperrter Benutzer
Mit Tab meinte ich die "Registerreiter" der einzelnen geöffneten java-Dateien.
Schreibe bzw. ergänze mal die path-Variable in Deiner Autoexec.bat:
Code:
set path=.;C:\Java\bin;C:\Java\lib;C:\Java\jre
Vielleicht muss Du das noch an Dein System angepasst werden. Ich hoffe, das hilft.
 

brasilian

Aktives Mitglied
Ich hab das ganze eingefügt, doch der Erfolg bleibt leider aus.

Mir ist aber dabei noch ne andere Sache aufgefallen.

Ich kann ja diverse Java-Programme nicht in meinem alten Ordner kompilieren, die Fehlermeldungen sind bekannt.

Ich habe auf der Festplatte einen ganz neuen Ordner angelegt und dort ein paar der Programme gespeichert und kompiliert bekommen.

Ich gebe ganz ehrlich zu, dass ich diese Entwicklung nicht ganz nachvollziehen kann, da es mir aus logischer Sicht schwer fällt, weshalb in einem Ordner sich die Quellcodes compilieren lassen und im anderen nicht !

Ich denke, dass ich aber vorerst das Problem gelöst habe, da ich inzwischen wieder vernünftig arbeiten kann, ich bin sehr froh darüber.

Ich denke dieser Thread sollte noch eine Weile geöffnet bleiben, den ich möchte mal sehen wie das System in zwei Wochen aussieht, ich habe ja keine Lust jeden Tag nen neuen Ordner anzulegen.
Ich werde mich aber dann auf alle Fälle wieder melden.

Ich bin sehr froh, dass es "Die Java-Community, in der einem garantiert geholfen wird." gibt, und hoffe das ich ihn Zukunft auch einen Beitrag dazu leisten kann.
 

itebob

Mitglied
brasilian hat gesagt.:
Ich habe wie gesagt nur auf MS-Dos Basis kompiliert, doch da ging alles, mit dem Java-Editor hatte ich keinen Erfolg.
Ich habe mal ein paar Programme von dem Pfad C:\Java-Programme\MeineProgramme in dem Pfad C:\Java\bin\
kopiert und dann anschließend mit dem Java-Editor versucht zu compilieren, dies geht super !

Ich bin aber noch nicht ganz zufrieden, da ich eigentlich keine Lust habe alle Programme in Programme in diesem Ordner zu speichern und auszuführen, dies ist nach meiner Ansicht nicht sonderlich nützlich für künftige Programme.

Ich möchte sehr gerne wieder alle Programme, von dem alten Pfad kompilieren können.

....

Ich habe auf der Festplatte einen ganz neuen Ordner angelegt und dort ein paar der Programme gespeichert und kompiliert bekommen.

Ich gebe ganz ehrlich zu, dass ich diese Entwicklung nicht ganz nachvollziehen kann, da es mir aus logischer Sicht schwer fällt, weshalb in einem Ordner sich die Quellcodes compilieren lassen und im anderen nicht !
Diese meine Bemerkung hat mit dem eigentlichen Thema dieses Threads 'Compilerproblem' nur insoweit was zu tun, dass ich vor ein Paar Tagen mitten in meinen ersten Geheversuchen mit Java auch eine böse Überraschung erlebt habe, als ein simpler (Java)Codeschnipsel, das ich als Backup schnell in ein anderes Verzeichnis kopiert habe, dort partout nicht funktionierte. Hat mir ein Paar Stunden gekostet, bis ich auf die Idee kam, dass im Namen des Backup-Ordners eine Umlaute enthalten ist ('Parameterübergabe aus JavaScript ind Java' hieß mein Ordner). So braucht man sich nicht wundern, dass die da hinter dem großen Teich immer eine Nase vorn im IT-Bereich sind - :idea: sie haben doch das ä,ü, ß usw.-Problem nicht täglich 24 St/ Tag zu bewältigen?

Unter diesen Umständen habe ich so meine Zweifel, dass die jetzige Bemühungen in Richtung 'Internationalisierung von Domainnamen'
[url=http://www.teltarif.de/arch/2003/kw47/s12135.html hat gesagt.:
Neuer Standard für Domainnamen'[/url]]Mit den so genannten Internationalized Domain Names (IDN) werden Umlaute und Akzente, aber auch komplette andere Alphabete wie das griechische, arabische und sogar chinesische Schriftzeichen in Domainnamen nun nutzbar.
gute Früchte bringen. Ich tippe sowas wird ähnlich Probleme auwferfen, wie die Rechtsschreibreform, Millenium-Problem usw. Es entsteht vermutlich ein ganzer Berufsstand 'Domainsyntax-Conslter' oder sowas :D ...

Ich bin selbstverständlich auch für die Gleichberechtigung im WWW, aber dass man die ganze Welt nicht in die gleiche auch so gut gemeinte Standards ohne weiteres reinquetschen kann, zeigt m.E. auch die jetzige Situation im Irak :noe: .

Was mich aus der Bahn geworfen hat, ähnlich wie hier bei brasilian, ich hatte keine Ahnung:
  • welche Änderungen in der Laufzeitumgebung könnten diese Ursachen sein?
  • in welche Richtung kan ich im Internet recherchieren?
  • welche Suchwörter kommen in Frage?
Ein positiver Nebeneffekt dieser Panne - ich bin auf Die Java-Community, in der einem garantiert geholfen wird gestossen und es ist auch irgendwie beruhigend (Zugehörigkeitsgefühl :wink: ?), das man ab und zu nicht als einziger so rat- und hilflos ist, wenn es darum geht, dass das Programm nicht läuft bzw. funktioniert nicht wie erwartet.
Das Umlaute-Problem habe ich letztendlich selbst erkannt und beseitigt. Aber ich kann mich nicht erinnern, dass irgendwo in Java-Basics steht, dass Umlauten in Pfadangaben Tabu sind (meine Arbeitsumgebung ist Windows 98 SE, j2sdk1.4.2 04 )). Oder habe ich falsche Bücher/ Online-Tutorials gelesen?
Ist es vielleicht bei brasilian auch der Bindestrich C:\Java-Programme\MeineProgramme der Übeltäter?
 

brasilian

Aktives Mitglied
Ich finde die Idee sehr originel aber leider ist dies bei mir nicht der Grund.

Trotzdem vielen Dank für dein Posting ! :applaus:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben