PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JAVAC - Compilier-Probleme



IceEagle
16-04-2003, 09:35
Hallo!

Ich habe einige BeispielScripte aus dem Internet geladen, von unterschiedlichen Java-Programmen.
Bei den BeispielScripten sind auch gleich die fertig compilierten Classen, so wie die HTML-Dateien mit Eingebundenen Klassen enthalten, damit man es direkt testen kann.

Nun habe ich, ohne an der java-Datei etwas zu verändern, einfach mal diesen Java-Source mit SuSE Linux 8.1 JAVAC erneut kompiliert, um zu sehen, was mein Compilier zu dem Source sagt.

Es werden keine Fehlermeldungen ausgegegeben, was ja schonmal ein gutes Zeichen ist.
Nachdem aber die HTML-Datei aufgerufen wird, funktioniert das Programm nicht.

Es wird zwar richtig aufgebaut, aber die Funktionen, die z.B. auf Mouseclick bei dem Original-Class durchgeführt werden, darauf reagiert er bei meiner compilierten Version nicht mehr.

Der Source und die HTML-Datei ist absolut korrekt.

Muss man bei Javac noch Parameter angeben, damit er die Klasse für HTML kompiliert, oder damit die Mouse-Tasten auch funktionieren?

Ich übe mich gerade erst in Java-Programmierung, habe schon einzelne Anwendungen für die Konsole entwickelt, möchte es aber nun mit HTML-EInbindung versuchen.

Wäre schön, wenn mir jemand sagen kann, was mit dem Compiler nicht stimmt.

anda_skoa
16-04-2003, 09:44
Arg, bitte sag nicht Script im Zusammenhang mit Java :)

Schalte bei deinem Browser mal die Java Console ein, dorthin werden eventuell auftauchende Fehler protokolliert.

Ciao,
_

SeeksTheMoon
16-04-2003, 09:54
ruf den javac mal mit der Option -verbose auf, vielleicht steht da etwas.

Wenn Du auf genauere Fehlermeldungen angewiesen bist (und schneller kompilieren willst), probier als java-compiler mal jikes von IBM:
http://www-124.ibm.com/developerworks/opensource/jikes/
Dessen Warnungen und Fehlermeldungen sind wesentlich besser als die vom javac.

IceEagle
16-04-2003, 11:29
okay, danke für den Tipp.

Jikes hab ich installiert, die Fehlermeldung lautet bei dem wie folgt:



jikes Test.java

Found 1 system error:

*** Error: You need to modify your classpath, sourcepath, bootclasspath, and/or extdirs setup. Package "java/lang" could not be found in:



Und die Meldung von javac -verbose lautet:



javac -verbose Test.java
[parsing started Test.java]
[parsing completed 173ms]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/applet/Applet.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/Panel.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/Container.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/Component.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/lang/Object.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/image/ImageObserver.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/MenuContainer.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/io/Serializable.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(javax/accessibility/Accessible.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/event/MouseListener.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/util/EventListener.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/Image.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/Graphics.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/event/MouseEvent.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/lang/String.class)]
[checking Test]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/Dimension.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/Color.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/event/InputEvent.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/event/ComponentEvent.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/awt/AWTEvent.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/util/EventObject.class)]
[loading /usr/lib/SunJava2-1.3.1/jre/lib/rt.jar(java/lang/Math.class)]
[wrote Test.class]
[total 694ms]



Mit der Fehlermeldung von jikes kann ich nichts anfangen. :(

IceEagle
16-04-2003, 11:41
an anda_skoa

Das mit der Console hab ich nun auch gemacht, am Anfang kommt diese Meldung in der Console:



Java VM version: 1.3.1_04
Java VM vendor: Sun Microsystems Inc.
Unable to load JSSE SSL stream handler, https support not available


Wenn ich dann den Mousebutton in die Felder klicke (Einfaches TicTacToe-Spiel), kommt bei jedem Mouse Click so ein großer Block in der Console:




Exception occurred during event dispatching:
java.lang.NullPointerException
at sun.awt.motif.X11Graphics.drawImage(X11Graphics.ja va:599)
at TicTacToe.paint(TicTacToe.java:250)
at sun.awt.RepaintArea.paint(RepaintArea.java:293)
at sun.awt.motif.MComponentPeer.handleEvent(MComponen tPeer.java:344)
at java.awt.Component.dispatchEventImpl(Component.jav a:2658)
at java.awt.Container.dispatchEventImpl(Container.jav a:1208)
at java.awt.Component.dispatchEvent(Component.java:24 92)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 334)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:126)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:88)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:80)


Und so weiter




Exception occurred during event dispatching:
java.lang.NullPointerException
at sun.awt.motif.X11Graphics.drawImage(X11Graphics.ja va:599)
at TicTacToe.paint(TicTacToe.java:250)
at java.awt.Container.update(Container.java:976)
at sun.awt.RepaintArea.update(RepaintArea.java:332)
at sun.awt.motif.MComponentPeer.handleEvent(MComponen tPeer.java:348)
at java.awt.Component.dispatchEventImpl(Component.jav a:2658)
at java.awt.Container.dispatchEventImpl(Container.jav a:1208)
at java.awt.Component.dispatchEvent(Component.java:24 92)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 334)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:126)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:88)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:80)
Exception occurred during event dispatching:
java.lang.NullPointerException
at sun.awt.motif.X11Graphics.drawImage(X11Graphics.ja va:599)
at TicTacToe.paint(TicTacToe.java:250)
at sun.awt.RepaintArea.paint(RepaintArea.java:293)
at sun.awt.motif.MComponentPeer.handleEvent(MComponen tPeer.java:344)
at java.awt.Component.dispatchEventImpl(Component.jav a:2658)
at java.awt.Container.dispatchEventImpl(Container.jav a:1208)
at java.awt.Component.dispatchEvent(Component.java:24 92)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 334)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:126)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:88)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:80)
Exception occurred during event dispatching:
java.lang.NullPointerException
at sun.awt.motif.X11Graphics.drawImage(X11Graphics.ja va:599)
at TicTacToe.paint(TicTacToe.java:250)
at sun.awt.RepaintArea.paint(RepaintArea.java:293)
at sun.awt.motif.MComponentPeer.handleEvent(MComponen tPeer.java:344)
at java.awt.Component.dispatchEventImpl(Component.jav a:2658)
at java.awt.Container.dispatchEventImpl(Container.jav a:1208)
at java.awt.Component.dispatchEvent(Component.java:24 92)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 334)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:126)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:88)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:80)
Exception occurred during event dispatching:
java.lang.NullPointerException
at sun.awt.motif.X11Graphics.drawImage(X11Graphics.ja va:599)
at TicTacToe.paint(TicTacToe.java:250)
at sun.awt.RepaintArea.paint(RepaintArea.java:293)
at sun.awt.motif.MComponentPeer.handleEvent(MComponen tPeer.java:344)
at java.awt.Component.dispatchEventImpl(Component.jav a:2658)
at java.awt.Container.dispatchEventImpl(Container.jav a:1208)
at java.awt.Component.dispatchEvent(Component.java:24 92)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 334)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:126)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:88)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:80)

anda_skoa
16-04-2003, 12:15
Zeigt mal den Code um Zeile 250



at TicTacToe.paint(TicTacToe.java:250)


Ciao,
_

IceEagle
16-04-2003, 16:52
Ich hab mal das ganze Programm als Text-File-Anlage hier mit beigefügt, hoffe es klappt, geht wohl einfacher so.

peschmae
16-04-2003, 17:06
was ist denn dort genau "== null"?

Liegen die Bilder wirklich im Ordner ./images/ relativ vom Ordner der .class - Datei (gilt afaik auch so in Jar - Files, d.h. die Images _im_ jar)

MfG Peschmä

IceEagle
16-04-2003, 17:24
Also was ich hier habe ist lediglich die fertige und funktionierende Klasse, die Java.Datei (Anlage) und eine HTML-Datei, die diese fertige Klasse aufruft.

3 Dateien. Keine Bilder

TicTacToe.java
TicTacToe.class
TicTacToe.htm

Keine Unterverzeichnisse

Kann aber sein, dass diese Klassen vom Ursprung her it Bildern generiert wurden, und diese nun garnicht mitgeliefert wurden, wäre mäglich... Fänd ich aber dann irgendwie dumm, weil sie für Lernzwecke sind. Wie soll man denn dabei was lernen?! :D

peschmae
17-04-2003, 06:47
erstell doch mal irgendwelche ersatzbildli für sämtliche im Code erwähnten...

oder sag wo du sie herhast

MfG Peschmä

IceEagle
17-04-2003, 09:00
Ja, nochmals vielen Dank für die Hilfe. Es lag an den Bildern, habe die richtigen Soruces nun mit den Bildern nachgereicht bekommen.
Es läuft nun.
Woher sie sind, weiß ich leider auch nicht genau, die Vollständigen hab ich nun von einem Kolegen.
Bei Interesse kann ich Sie Dir aber gerne geben.