Avatar billede elskermad.dk Nybegynder
08. februar 2006 - 22:33 Der er 35 kommentarer og
1 løsning

flere klasser sammen

Hej Eksperter!

Jeg er gået i gang med Java her i dag vha. www.javabog.dk (som jeg tror bliver en rigtig god side for mig til at lære sproget) - Jeg havde "planlagt" at gå i gang med at lære mig c++ eller c# men pga. jeg fandt en dansk guide til Java blev det dette sprog i stedet..

Jeg tror det er lige så godt da jeg ikke har i sinde at lave hverken styresystemer eller drivers, blot nogle applikationer som kan arbejde sammen med mine websteder - Fx hvis jeg skal lave nogle administrationmoduler via et program, eller hvis der skal stå en server kørende 24/7 og være med til at lave faste opdateringer hver nat i stedet for at lave det med usikkert html/serverside...

Jeg arbejde til dagligt med PHP og kan derfor godt forstå en del af syntaxen og strukturen i Java (hvilket jeg egentlig ikke havde troet)

Jeg har et par spørgsmål efter jeg har læst et par kapitler.

- Hvad gør man når flere klasser skal arbejde sammen? De skal jo gemmes i hver sin fil med navnet klassenavn.java og derfor kan flere klasser jo ikke være i samme fil?
- Java kan da godt lave exe-filer? Altså programmer man kan åbne direkte fra Windows som så laver nogle handlinger?
Lige nu får jeg kun noget tekst skrevet ud i min editor (Borland JBuilder)
- Hvad bruger man egentlig JBuilder? Jeg synes det er meget akavet, at man først skal oprette et projekt gennem en wizard og derefter gå igennem endnu et par wizards før man kan gå i gang... Kan man ikke bare gå en blank side man kan skrive kode i?
- Et andet spørgsmål til JBuilder er hvorfor man skal definerer en "main"-klasse inden man kan køre programmet gennem "run"-funktionen? Hvis man ikke har det vil den ikke kompliere og melder fejl - Hvad gør jeg forkert der?

Ja, lige et par begynder spørgsmål jeg gerne vil have belyst - Der kommer helt sikkert mange Java spørgsmål fra mig den næste stykke tid :)

På forhånd mange tak!
Avatar billede elskermad.dk Nybegynder
08. februar 2006 - 22:36 #1
... og det blev så en dårlig titel da jeg glemte at omskrive titlen efter jeg udvidede mit spørgsmål :]
Avatar billede jakoba Nybegynder
08. februar 2006 - 22:54 #2
hvis dine ,class filer ligger i samme mappe siger du blot
> java KlassMedMain.class
og de ekstra .class filer den evt har brug for bliver så automatisk hentet mår programmet afvikles.
Avatar billede jakoba Nybegynder
08. februar 2006 - 23:01 #3
Nej. selve Java er jo netop uafhængingt af maskinen, styresystemet osv. så de basale java regler gælder kun til det punkt hvor en .class fil skal afvikles af den virtuelle maskine.

Men du kan samle dine .class filer in en .jar fil (java's version af .zip) og så finde et program der kakker hele møjet sammen med javaVM til en .exe fil. Samtidig mister du så også java's "run anywhere" fordel. og hvis du gør det på en winXP har du nul og nix garanti for at den .exe også vil virke på Win98 eller win2000

aner intet on JBuilder. Undgår den slage "vi gør det for dig" programmer som pesten indtil jeg har lært sproget og ved hvordan man gør det selv. Det må andre svare på.
Avatar billede arne_v Ekspert
08. februar 2006 - 23:37 #4
java KlassMedMain

ikke

java KlassMedMain.class
Avatar billede arne_v Ekspert
08. februar 2006 - 23:39 #5
java KlassMedMain

ikke

java KlassMedMain.class
Avatar billede arne_v Ekspert
08. februar 2006 - 23:41 #6
undskyld dobbelt post

Hvis man har A.java B.java og C.java i current dir og A.java indeholder main saa kan man

javac -classpath . *.java
java -classpath . A

-classpath angiver hvor den skal kigge efter oversat kode henne
Avatar billede arne_v Ekspert
08. februar 2006 - 23:46 #7
man bruger saa godt som aldrig EXE filer i Java og det er ikke officielt supporteret
Avatar billede arne_v Ekspert
08. februar 2006 - 23:51 #8
det er almindeligt i professionelle IDE'er at man skal oprette et projekt

JBuilders create project wizard er bare lidt mere nysgerrig end andres

hvis du hoejreklikker paa din main class og vaelger run der behoever du ikke angive
main class i projektet
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 07:56 #9
hvor skriver man det "java KlassMedMain"? går ud fra det er på en linux-maskine? er på en winXp.. Jeg ville egentlig os helst skrive "ren" kode uden nogen IDE-program, men så ved jeg ikke hvordan jeg får den komplimeret?

men kan man ikke lave programmer med java så? fx et som jeg beskriver i spørgsmålet, eller mere avanceret måske noget regnskab/lagerstyring?

dvs. Java ikke er sproget for mig?
Avatar billede jakoba Nybegynder
09. februar 2006 - 09:57 #10
Der er stadig et kommando linie interface i XP.
knap 'start', punkt 'programmer',  punkt 'tilbehør',  punkt "kommando prompt'  bringer et DOS-agtigt vindue frem hvor du kan skrive den slags kommandolinier og få dem udført.

Og jo, man kan da sagtens skrive programmer i Java, også koloenormt store programmer. Men hvert sprog har sine regler, også 'udenfor' selve sproget, og de regler skal så læres.
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 10:10 #11
Når jeg prøver at køre den gennem Windows cmd, med "java HejVerden" siger den følgende fejl: (jeg er placeret i mappen hvor HejVerden.java ligger inden jeg kører kommandoen)

Registry key "Software\JavaSoft\Java Runtime Environment\CurrentVersin" has value !1.4", but "1.5" is reguired.
Error: could not find java.dll
Error: could not find Java 2 Runtime environment.

Jeg har været forbi getjava.com og installeret den nyeste version hvad gør jeg så fejl?

Koden i HejVerden er skrevet i notepad så den burde være "ren"... Bruger følgende kode: (fra javabog.dk)

public class HejVerden
{
  public static void main (String[] arg)
  {
    System.out.println("Hej Verden!");
    System.out.println("Hvornår smager en Tuborg bedst?");
    System.out.println("Hvergang!");
  }
}
Avatar billede jakoba Nybegynder
09. februar 2006 - 10:37 #12
java koden er OK.
du har ikke fået installeret en ny nok JRE (Java virtuel maskine) svarende til den java oversætter du bruger. der er flere måder at fixe der:
du kan fortælle fortælle hvilken VM du vil oversætte til
...> javac -target 1.4 KlasseMedMain     
                ;; usikker mht hvordan versionsnummeret skal angives. hvis arne er uenig, så tro til enhver tid på ham :-))
eller du kan installere en ny nok VM til at den passer til compileren

det kan være din classpath variabel (environment variables) skal udvides så den også peger derhen hvor der ligger en fil med navnet 'java.dll'
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 10:55 #13
hvordan opdaterer jeg JRE-versionen?
Avatar billede jakoba Nybegynder
09. februar 2006 - 11:13 #14
Desværre, det ved jeg ikke. Jeg troede med det skete automatisk når du installerer nyeste version.
Avatar billede arne_v Ekspert
09. februar 2006 - 13:40 #15
den er rive gal med din java installation

jeg ville nok afinstallere alle versioner og geninstallere nyeste

java versioner kan sagtens sameksistere, men der kan altsaa gaa kage i det

du kan ogsaa proeve den -target switch, men jeg synes ikke at det er en holdbar
loesning
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 14:42 #16
okay, jeg har nu afinstalleret de java ting jeg kunne finde i "tilføj/fjern programmer"... hvordan burde jeg så installerer det igen?

gennem http://java.com/en/download/ie_auto.jsp ?
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 14:46 #17
... iøvrigt, kunne i give et eksempel på hvilke programmer der er skrevet i Java? Synes ikke jeg bruger mange ting som ikke er exe-filer, og det eneste Java jeg kan komme på jeg bruger, er apples på internettet som fx webbank?
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 14:50 #18
Jeg har installeret Java vi linket ovenfor (standard installation) og når jeg nu i commandprompen skriver "java HejVerden" skriver den:

Exception in thread "main" java.lang.NoClassDefFoundError: HejVerden

hvad skyldes det nu? :S
Avatar billede arne_v Ekspert
09. februar 2006 - 15:41 #19
forkert link tror jeg - det er vist kun til browser

java.sun.com og hent J2SE 5.0 JDK (ikke JRE)
Avatar billede arne_v Ekspert
09. februar 2006 - 15:46 #20
Java bruges til meget:

applets (som du kender) altsaa client side web

mobil telefon applikationer (J2ME)

server side web (J2EE) - en del meget store web sites bruger det

almindelige desktop apps - der er ikke saa mange men trods alt nogen -
bl.a. er de fleste java tools saasom JBuilder lavet i Java, men
hvis du soeger paa computerworld saa var der for en maaneds tid siden en historie
om et dansk spil firma som havde lavet det meste af deres nye spil i Java, fordi
det var langt nemmere at lave baade windows og linux version

infrastruktur - IBM WebSphere er ret udbredt, OpenOffice.org 2.0 database delen er
lavet i Java
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 18:28 #21
jeg har nu disse to ting installeret (i følge tilføj/fjern):
J2SE Development Kit 5.0 Update 6
J2SE Runtime Environment 5.0 Update 6

men den laver stadig fejlen med "Exception in thread "main" java.lang.NoClassDefFoundError: HejVerden"...

jeg sætter lige pointsne lidt op som tak for jeres hjælp indtil videre :)

- og tak for eksemplerne - meget brugbare!
Avatar billede arne_v Ekspert
09. februar 2006 - 18:38 #22
har du proevet:

javac -classpath . HejVerden.java
java -classpath . HejVerden

?
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 18:50 #23
"javac" blev ikke genkendt som en intern eller ekstern kommando, et program eller batchfil...

Jeg må virkelig være ringe til at installere java hehe... Min webbank fungere som også anvender java
Avatar billede arne_v Ekspert
09. februar 2006 - 19:18 #24
angiv fuld sti:

"\java\dir\bin\javac" -classpath . HejVerden.java
"\java\dir\bin\java" -classpath . HejVerden
Avatar billede arne_v Ekspert
09. februar 2006 - 19:23 #25
browser plugin er kun en lille del af java
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 19:31 #26
Hvis jeg skriver "c:\programmer\java\jdk1.5.0_06\bin\javac -classpath . HejVerden.java" kan jeg bagefter bruge "java HejVerden", men kan det passe det skal være så bøvlet for at teste et script hver gang?

Hvordan koder du fx java?
Avatar billede arne_v Ekspert
09. februar 2006 - 19:41 #27
Hvis du tilfoejer c:\programmer\java\jdk1.5.0_06\bin til PATH saa behoever du ikke angive det hver gang

----

Eclipse eller JBuilder eller command line
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 20:03 #28
hvordan tilføjer jeg det til path?
Avatar billede arne_v Ekspert
09. februar 2006 - 20:06 #29
control panel
system
advanced
environment

VIGTIGT: tilfoej kun - du maa ikke slette de eksisterende

(man adskiller med semikolon)
Avatar billede arne_v Ekspert
09. februar 2006 - 20:08 #30
alternativ:

java15def.bat
-------------

PATH=c:\programmer\java\jdk1.5.0_06\bin;%PATH%

naar du saa skal bruge Java, saa:

java15def
javac -classpath . Foobar.java
java -classpath . Foobar
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 20:09 #31
jeg har dansk Xp - men går ud fra det er: Kontrolpanal - System - Fanebladet avanceret - og hvor så?
Avatar billede arne_v Ekspert
09. februar 2006 - 20:52 #32
miljø
Avatar billede elskermad.dk Nybegynder
09. februar 2006 - 21:07 #33
en bruger eller systemvariable og hvad skal navnet og værdien være?
Avatar billede arne_v Ekspert
09. februar 2006 - 21:14 #34
bruger=kun dig
system=alle brugere paa maskinen

PATH - og den er der allerede

VIGTIGT: tilfoej - ikke erstat
Avatar billede elskermad.dk Nybegynder
01. marts 2006 - 20:48 #35
smider i nogen svar? opgav desværre
Avatar billede arne_v Ekspert
01. marts 2006 - 21:21 #36
OK
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