Avatar billede Bennysørensen Praktikant
01. juli 2003 - 04:51 Der er 34 kommentarer og
1 løsning

Java, Forte og noget, der vist er en begynderfejl

Jeg sidder med en Java-bog (Java, Java, java), og har tampet en programeksempel ind i filen FirstApplet.java. I Forte kan jeg endnu ikke (efter en times brug) regne ud hvordan jeg egentligt ser postfix på filerne, men jeg er ret sikker på at det er en .java-fil.

sourcekoden er:

/*
* FirstApplet.java
*
* Created on 1. juli 2003, 04:28
*/

import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;

public class FirstApplet extends Applet implements ActionListener
{
    private Button clickMe;    //the Button
   
    public void init()
    {
        clickMe = new Button ("Click Me Not!");    //create the button
        clickMe.addActionListener(this);            //activate the button
        add(clickMe);                              //add it to the applet
    }  //init()
   
    public void actionPerformed(ActionEvent e)
    {
        if (clickMe.getLabel().equals("Click Me!"))
            clickMe.setLabel("Click Me Not!");
        else
            clickMe.setLabel("Click Me!");
    }  //actionPerformed
}  //end of FirstApplet

Fint nok, der er ingen fejl, når jeg compiler. Men jeg får en shitload af fejl, når jeg vil køre appletten:

java.lang.NoClassDefFoundError: examples/FirstApplet (wrong name: FirstApplet)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
Exception in thread "main"

...og jeg forstår ikke en meter.

Venligst

Anders Schrøder
Avatar billede mosquito Nybegynder
01. juli 2003 - 06:29 #1
Det kunne se ud som om stien examples ikke er omfattet af din classpath.
Avatar billede arne_v Ekspert
01. juli 2003 - 07:46 #2
Sæt en:

package examples;

ind øverst i din applet, så tror jeg den virker !
Avatar billede arne_v Ekspert
01. juli 2003 - 10:16 #3
Hm.

Det er nok ikke problemet.

Det er nok snarere i HTML'en.

Prøv og ret:

<applet
  codebase = "."
  code    = "examples/FirstApplet.class"
  ...
>

til:

<applet
  codebase = "."
  code    = "FirstApplet.class"
  ...
>

eller måske:

<applet
  codebase = "examples"
  code    = "FirstApplet.class"
  ...
>
Avatar billede Bennysørensen Praktikant
01. juli 2003 - 14:22 #4
Hm...hvis jeg skriver
package examples;
bliver running-fejlene barberet ned til:

java.lang.NoSuchMethodError: main
Exception in thread "main"

Jeg har tidligere fået et vindue, der fortalte mig at min applet ikke var loaded, hvor jeg så kunne se HTML-koden, men dét er forsvundet etellerandet underligt sted hen.
Jeg er meget i tvivl om hvordan jeg skal bruge Forte: Jeg vil sådan set bare gerne lave en Firstapplet.java, men hvis jeg skal vælge i de forskellige templates aner jeg ikke hvordan jeg finder rundt: Jeg kan stadig ikke finde de forskellige post-fixes. Der er rimelig stor sansynlighed for at jeg har oprettet projektet forkert, eftersom jeg ikke kan finde min HTML-kode nogen steder.

Jeg leder derfor også efter Det Helt Rigtige Sted på nettet, hvor man som begynder-begynder bliver oplært stille og roligt i hvordan man bruger Forte...hvis der er nogen, der lige kender dét sted.
Avatar billede arne_v Ekspert
01. juli 2003 - 22:23 #5
Jeg har lige prøvet med Sun ONE Studio (nyt navn for Forte) version 4upd1.

du laver et projekt
højre-klik
New
Classs
Applet
og så følger du bare wizarden

så burde du få lavet en korrekt applet og tilhørende HTML..
Avatar billede _carsten Nybegynder
01. juli 2003 - 22:25 #6
Det er rimelig nemt at lava GUI i Sun ONE (Forte)
Jeg ved ikke om der findes anden hjælp ud over den indbyggede.

Lav en rodekasse hvor du kan ekperimentere eks. c:\javatest

Vælg fanen GUI Editing og Filesystem, så du har explorer (filsystemet i venstre side)

Eksempel med JApplet:

1. Højreklik på folderen 'javatest'
2. Vælg New | GUI Forms | JApplet
3. Navngiv og så bare derud ad, eller Finish med det samme.

  Sun ONE generer nu den primære kode til JAppletten

4. Højreklik (i explorer vinduet) på filnavnet og vælg 'Execute'
  Her efter genereres html-koden og appletten vises

I Form editoren trækker du bare knapper, paneler og diverse andet ind på appletten.
Avatar billede arne_v Ekspert
01. juli 2003 - 22:32 #7
Nu skal han nok vælge AWT Form + Applet i.s.f. JApplet i dette tilfælde.

Men hvis man er til GUI builder (one way GUI builder i dette tilfælde),
så er det måden.
Avatar billede _carsten Nybegynder
01. juli 2003 - 22:37 #8
Ja - selvfølgelig!

2. Vælg New | GUI Forms | AWT Form | Applet

Det er bare mig der kun tænker i JApplet
Avatar billede arne_v Ekspert
01. juli 2003 - 22:40 #9
Måske skulle du lige forklare Anders lidt om forskellen og hvorfor det
ene og det andet.
Avatar billede _carsten Nybegynder
01. juli 2003 - 23:06 #10
Hvis du tænker på forskellen mellem Applet og JApplet, må den korte udgave blive noget i denne retning.

JApplet er en udvidet version af Applet som benytter sig af Swing componenter

Swing indeholder en masse grafiske komponenter, som gør det muligt at fremstille særdeles avanceret GUI, 2D eller 3D om man kan finde ud af det.
Avatar billede arne_v Ekspert
01. juli 2003 - 23:13 #11
Ja.

Applet = ren AWT
JApplet = Swing

Swing er meget mere avanceret end AWT.

Swing er nyere end AWT og kører derfor ikke på Microsoft
gamle JVM og kan derfor ikke vises på IE som ikke er blevet
opdateret med SUN JVM.
Avatar billede _carsten Nybegynder
01. juli 2003 - 23:19 #12
Ja - men dog i IE med Java Plug-in

Og skal vi så lige den tage den lange forklaring med det samme.
http://java.sun.com/docs/books/tutorial/uiswing/start/swingIntro.html
Avatar billede arne_v Ekspert
01. juli 2003 - 23:26 #13
Jep.

Men valg af Applet eller JApplet kan godt være en rimelig vigtig
beslutning.
Avatar billede _carsten Nybegynder
01. juli 2003 - 23:30 #14
Selvfølgelig, det kan vi ikke blive uenige i.

Jeg gør bare ikke meget i applets, så indtil videre har valget for mig været let, JApplets!
Avatar billede Bennysørensen Praktikant
02. juli 2003 - 22:10 #15
Hm...problemet er, at jeg sådan set ikke er så skide interesseret i at lære Forte, som jeg er i at lære Java. Jeg prøver bare på at fange funktionerne og syntaksen i Java, og er foreløbigt kommet meget kort.

Hvis jeg vælger at benytte  New | GUI Forms | AWT Form | Applet kommer GUI Forms slet ikke som valgmulighed, men dét gør vist ikke så meget:  Jeg får en stump kode, som jeg så kan køre og som så viser et tomt vindue. Beklageligvis kan jeg ikke få lov at editere i dén kode, der vises, og jeg vil jo gerne lave dét eksempel, der er vist øverst i denne tråd. Det er det første eksempel i bogen...og jeg aner ikke hvor jeg skal proppe min kode ind. Jeg kan kun få lov at editere uden for de funktioner, der allerede er der...og så kan jeg f.eks ikke få noget til at passe med
public class FirstApplet extends Applet implements ActionListener etc.

Kors...det er godt at der er ledning i min mus, ellers var den godt nok fløjet langt: Jeg vil bare lave "Mit første Program", og så skal jeg bruge flere timer på Forte....
Avatar billede arne_v Ekspert
02. juli 2003 - 22:15 #16
Forte/Sun ONE Studio og NetBeans GUI builder er one-way d.v.s. at man får
ikke lov til at rette i den kode GUI builderen genererer.

Men hvis du bruger vejledning i min 22:23:54 kommentar, så skulle
du undgå GUI builderen.
Avatar billede arne_v Ekspert
02. juli 2003 - 22:17 #17
Og hvis Forte/Sun ONE Studio/NetBeans og din kemi ikke passer sammen så prøv et
af de mange alternativer.

Eclipse - www.eclipse.org
Oracle JDeveloper - www.oracle.com
Borland JBuilder - www.borland.com (Personal Edition er gratis)
Avatar billede Bennysørensen Praktikant
02. juli 2003 - 22:52 #18
Well, jeg får ganske rigtigt et HTML-vindue, men appletten bliver ikke initialiseret...og jeg får nøjagtigt de samme compilerfejl som i starten af denne tråd.
Avatar billede _carsten Nybegynder
02. juli 2003 - 22:58 #19
Hvis du gerne vil undgå FORM editor vinduet og det er nok det du skal gøre til at begynde med

Vælg New | Classes | Applet

Så generer koden til en Applet og kun source vinduet vises, det kan du redigere i direkte

Den kode der er markeret, skal redigeres via FORM editoren og det er nok ikke lige i dag vi skal kigge på det.
Avatar billede Bennysørensen Praktikant
02. juli 2003 - 23:03 #20
Ok...det lyder som om jeg bare skal bruge JBuilder i stedet. Den skal lige hentes f&oslash;rst :o)
Avatar billede _carsten Nybegynder
02. juli 2003 - 23:12 #21
Det lyder umiddelbart som om Sun One og dig ikke er gode venner, så ja - prøv nogle af arne_v's forslag.

Tror faktisk jeg selv vil gøre det samme, om ikke andet så for at se forskellen.
Avatar billede Bennysørensen Praktikant
02. juli 2003 - 23:17 #22
Hm...det er ikke Sun One, men nærmere Ralph Morelli, der er den store synder: Det er ham, der har skrevet en bog med kode-eksempler, der skal kunne køre vha. den medfølgende cd, uden at have givet et eneste hint til hvordan man skal sætte skidtet sammen i dét udviklingsmiljø, der foræres væk.

Facit: 1,5 times læsning (gik ok)
5 minutters kodeindtastning (gik fint)
2 dages brok med Forte

Hm...ikke sååå effektivt :o)

Tak for hjælpen...jeg er meget imponeret af hvor hurtigt I vender tilbage på mine spørgsmål.
Avatar billede _carsten Nybegynder
02. juli 2003 - 23:48 #23
Kender ikke Ralph Morelli, men har du set denne http://javabog.dk/

Skulle være rimelig god - har ikke selv læst den
Avatar billede arne_v Ekspert
03. juli 2003 - 06:08 #24
Find en anden bog.

Der er skrevet masser af bøger om Java.
Avatar billede arne_v Ekspert
03. juli 2003 - 06:11 #25
Hvilken IDE man bedst kan lide er meget et spørgsmål om smag og behag.

Men det er altid en god ide at prøve sig lidt frem.

Personligt foretrækker jeg:
  - Eclipse til almindelig Java programmering
  - JBuilder Enterprise Edition til J2EE, Web Services o.lign.
Avatar billede Bennysørensen Praktikant
03. juli 2003 - 11:59 #26
Well, problemet med dén bog er at den bliver brugt til dét forberedende Java-kursus, jeg selv lige skal læse op i sommerferien, før jeg starter på "Videregående Programmering" på IT-højskolen (hvis jeg altså kommer ind). Jeg har fået 2 års undervisning i C++ på min datamatikeruddannelse, derfor burde dét ikke være det store problem.

Jeg er begyndt at bruge en simpel HTML-side, der loader mine applets, men af enelleranden underlig grund bliver jeg ved med at få "Class not found"-fejlbeskeder. Nå, det løser sig nok altsammen.
Avatar billede arne_v Ekspert
03. juli 2003 - 12:12 #27
Hvis du kan programmere men bare skal lære Java, så start da for guds skyld
med noget andet end applets.
Avatar billede Bennysørensen Praktikant
03. juli 2003 - 13:51 #28
Jeg kan ikke programmere nok til at jeg ikke helst vil lære at kravle først...det lyder som om jeg har fået fat i en dårlig bog. Underligt, at det er dén, der er pensum.
Avatar billede arne_v Ekspert
03. juli 2003 - 14:06 #29
Jo men ...

Applets er en uinteressant teknologi da brugen af dem er faldende.

Der er en masse komplikationer med Java versioner og browsere.

Jeg synes at det er meget bedre at starte med Java applikationer.

1.  HelleWorld
2.  lidt objekt orienteret med nogle klasse
3.  lidt database via JDBC
4.  lidt GUI med Swing
5.  lidt client server med sockets
6.  lidt RMI

C++ application -> Java applet -> Java application

er en omvej i forhold til:

C++ application -> Java application

Der er en del der er gët:

JavaScript -> Java applet -> Java application

men JavaScript er en helt anden baggrund end C++.
Avatar billede Bennysørensen Praktikant
03. juli 2003 - 14:13 #30
Det er dét her kursus, jeg skal læse op selv:

"Det er målet, at du efter kurset har tilegnet dig følgende praktiske og teoretiske færdigheder:

Du skal kunne løse mindre programmeringsproblemer i Java. Til det formål skal du kunne benytte simple datatyper, tabeller, løkker, metoder, klasser og objekter.
Du skal kunne skrive programmer med simple grafiske brugergrænseflader.
Du skal kunne skrive programmer med simpel input/output.
Du skal kunne anvende givne programbiblioteker. Derfor skal du kunne forstå en Java-klasses funktionalitet ud fra dens beskrivelse (dokumentation) og du skal forstå begreberne nedarvning (inheritance) og grænseflader (interfaces), inkl. metodesignaturer (method signatures) og undtagelser (exceptions).

Kurset behandler en lang række grundlæggende emner, eksempelvis
Variable, typer, værdier.
Udtryk og ordrer, løkker.
Klasser og objekter.
Grafiske brugergrænseflader.
Tabeller
Klassehierarkier, nedarvning, grænseflader.
Appletter og grafik
Rekursion
Undtagelser (exceptions)
Input/output operationer.
"

Hvis du har bedre forslag end dén lortebog, jeg sidder med, er du meget, meget velkommen til at komme med dem...
Avatar billede arne_v Ekspert
03. juli 2003 - 14:46 #31
Det svarer vist stort set til 1+2+4 i min liste (også 3 hvis tabeller er
database tabeller).

Hvis du kan huske din C++ burde meget af det være piece of cake.

Men en god bog ?

Jeg har mange gode java bøger men nok ikke lige til dette her.

Jeg kan lige tænker over det. Ellers kender Carsten måske en.
Avatar billede _carsten Nybegynder
03. juli 2003 - 15:03 #32
Hmm - det der med at finde gode java bøger er vist en svær en, men en bog jeg selv synes er rimelig god og bredt dækkende er 'Java How To Program Third Edition' hos deitel http://www.deitel.com/books/downloads.html

Og jeg kan se at der er kommet en Fifth Edition, så mon ikke den er bedre
du kan i hvertfald se beskrivelse af den på ovenstående link.
Avatar billede _carsten Nybegynder
03. juli 2003 - 15:05 #33
Ellers er der også her, men jeg har ikke kigget nærmere på dem!

http://developer.java.sun.com/developer/Books/
Avatar billede arne_v Ekspert
03. juli 2003 - 15:17 #34
Måske skulle du checke hvad Wrox har udgivet af bøger om Java.

De er efter min mening normalt ret gode til beginner-intermediate
niveau programmerings bøger.
Avatar billede arne_v Ekspert
03. juli 2003 - 15:22 #35
Nu gør de mest i MS teknologi men de har en Java bog:

http://www.wrox.com/books/0764543652.shtml

En fed moppe dreng på næsten 1200 sider så et eller andet må
den indeholde.

Jeg har iøvrigt set den i en boghandel (men kiggede ikke i den).

Den har 4.5 stjerne hos Amazon og reviewene er generelt rimeligt
positive som beginner bog (læs selv).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester