[Java] .class bestanden

Pagina: 1
Acties:

  • Marc
  • Registratie: November 2001
  • Laatst online: 01-12-2021
GEGROET mede-tweakers en modjes!

ik zit met een probleem, dit probleem kunnen jullie grotendeels hier al lezen, maar ik wilde het toch wat beter uitleggen. jawel, niets gaat mij te ver.

dit is de code van het java bestand:

hallo.java
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.awt.Graphics;
import java.awt.Color;
import java.applet.Applet;

/* Deze applet tekent een Mondriaan-achtige
   "compositie met rood en blauw"
*/

public class hallo extends Applet
{
    public void paint(Graphics g)
    {
        int breedte, hoogte, balk, x1,x2,x3,y1,y2;

        // posities van de lijnen
        breedte = 200; x1 = 10; x2 = 50; x3 = 90;
        hoogte  = 100; y1 = 40; y2 = 70;
        balk    = 10;

        // achtergrond
        g.setColor(Color.white);
        g.fillRect(0, 0, breedte, hoogte);

        // zwarte balken
        g.setColor(Color.black);
        g.fillRect(x1, 0, balk, hoogte);
        g.fillRect(x2, 0, balk, hoogte);
        g.fillRect(x3, 0, balk, hoogte);
        g.fillRect(0, y1, breedte, balk);
        g.fillRect(0, y2, breedte, balk);

        // gekleurde vlakken
        g.setColor(Color.blue);
        g.fillRect(0, y1+balk, x1, y2-(y1+balk) );
        g.setColor(Color.red);
        g.fillRect(x3+balk, 0,
                   breedte-(x3+balk), y1);
    }
}


als ik hem compile krijg ik geen foutmeldingen en krijg ik gewoon hallo.class
hij is gecompiled met jdk 1.4.1_01, kan het misschien zijn dat alleen mensen met de nieuwste java environment het bestand kunnen zien? de error "class not found" snap ik helemaal niet want hij staat wel gewoon op mijn server.
ik heb zelf trouwens wel de nieuwste java environment maar bij mij deed hij het ook pas na een poosje.

heeft iemand misschien een idee wat er fout gaat?

Verwijderd

Voor een class is een paint() niet genoeg. Je moet ook een public void init() { .. } hebben (die zonodig leeg kan zijn). Geen idee hoe strict JVM hierop is. Daarnaast kun je in de java debugger (zie bv. netscape) vaak veel nuttige informatie vinden.

edit:
In galeon: tools -> java console.

[ Voor 10% gewijzigd door Verwijderd op 31-01-2003 22:46 ]


  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

Bovendien heeft een class altijd een hoofdletter. "Hallo" dus, niet "hallo".

Verwijderd

Move to P&W.

  • nxt
  • Registratie: November 2001
  • Laatst online: 12-06 10:00

nxt

Verwijderd schreef op 31 January 2003 @ 22:45:
Voor een class is een paint() niet genoeg. Je moet ook een public void init() { .. } hebben (die zonodig leeg kan zijn). Geen idee hoe strict JVM hierop is. Daarnaast kun je in de java debugger (zie bv. netscape) vaak veel nuttige informatie vinden.

edit:
In galeon: tools -> java console.
dat is onzin
de methods waar je het over hebt (init, start, stop)
zitten al in de Applet class
en aangezien je die extend heb je ze automatisch (al zijn doen ze dan niets)
en als je ze leeg wilt laten heeft het IMHO geen enkel nut om ze te overriden.

m.a.w. daar kan het dus niet aan liggen.

  • reskobon
  • Registratie: November 2001
  • Laatst online: 14-08 22:26
Je zegt dat je hem gecompileerd hebt met de nieuwste JRE dus dan moeten de mensen die hem bekijken dat ook hebben!

Er zit als ik even snel kijk geen fout in je code (Behalve de hoofdletter dan maar dat is meer een regel) Maar je zegt ook dat hij niet vastloopt bij het compilen. Naar mijn idee gaat er dus niks mis maar hebben de mensen die hem kijken niet de juiste JRE :)

Leeg


Verwijderd

Marc schreef op 31 januari 2003 @ 17:14:
GEGROET mede-tweakers en modjes!

ik zit met een probleem, dit probleem kunnen jullie grotendeels hier al lezen, maar ik wilde het toch wat beter uitleggen. jawel, niets gaat mij te ver.

als ik hem compile krijg ik geen foutmeldingen en krijg ik gewoon hallo.class
hij is gecompiled met jdk 1.4.1_01, kan het misschien zijn dat alleen mensen met de nieuwste java environment het bestand kunnen zien? de error "class not found" snap ik helemaal niet want hij staat wel gewoon op mijn server.
ik heb zelf trouwens wel de nieuwste java environment maar bij mij deed hij het ook pas na een poosje.

heeft iemand misschien een idee wat er fout gaat?
Met de java code is niks aan de hand, maar met je HTML file wel. Daar staat namelijk de tag "applet" in. Daarmee wordt nou net niet de java plugin opgestart. Dit gaat tegenwoordig middels een objec/embed. Je kunt je broncode door de HTMLConverter halen (standaard geleverd bij je SDK, en staat ergens in de bin dir) en dan werkt het gewoon.

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

De APPLET-tag werkt wel gewoon nog onder Mozilla, MSIE, enz. Idd deprecated, maar niet gelijk uit de HTML-spec gesloopt.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 01 februari 2003 @ 10:54:
Met de java code is niks aan de hand, maar met je HTML file wel. Daar staat namelijk de tag "applet" in. Daarmee wordt nou net niet de java plugin opgestart. Dit gaat tegenwoordig middels een objec/embed. Je kunt je broncode door de HTMLConverter halen (standaard geleverd bij je SDK, en staat ergens in de bin dir) en dan werkt het gewoon.

Bij een JRE 1.4.0 wordt gewoon de handler die aan Applet vast zit opgepakt door de Sun JRE ipv de MS JRE, dus dat moet het probleem niet zijn. Blijkt ook dat de HTML page van de topicstarter hier gewoon werkt ( IE 5, JRE 1.4.x)

Mocht de topicstarter nou echt behoefte hebben aan 'hij moet altijd werken' dan is het misschien handig om idd te converteren mbv de HTMLConverter. Probleem wat ik daar altijd tegenkom, is dat de HTMLConverter z'n classId nogal neerkwakt op de geïnstalleerde JDK van de persoon die compileert en daarmee dus oudere of nieuwere JDK's niet herkent en toch om een download vraagt.

Een betere optie is om te compileren met de -source <targetPlatform> switch van de java compiler. Dan kun je hem gewoon in binnen APPLET laten staan (AWT werkt perfect in de MS JRE) en werkt het bij iedereen

Verwijderd

Ja maar Glimi, de meeste mensen zijn windows_update_geil, dus die hebben ook de microsoft vm draaien. Verder kun je dus de JRE versie (die je in de converter aangeeft, dus je kunt ook lager als de huidige) afdwingen in het geval van EMBED. Dus het is wel degelijk af te raden om gebruik te maken van APPLET tags.
Pagina: 1