Avatar billede lasse37 Nybegynder
26. juni 2003 - 12:32 Der er 15 kommentarer og
1 løsning

Kompilerings direktiver

Jeg vil gerne vide hvordan Java har det med kompilerings direktiver. Findes det overhovedet i Java? Og hvis ikke, hvad gør man da istedet.

Tak
Avatar billede arne_v Ekspert
26. juni 2003 - 12:35 #1
Java har ikke #ifdef/#endif/#define etc..

De er ikke nødvendige, da Java er så platforms uafhængigt at
man ikke behøver forskellig kode alt efter platform.

Og anden brug af dem kan normalt lige så godt kodes med normal kode.
Avatar billede arne_v Ekspert
26. juni 2003 - 12:36 #2
Der findes enkelte switchs til javac og java komamndoerne.

Prøv:

javac
java
java -X

for at se de mulige options.
Avatar billede arne_v Ekspert
26. juni 2003 - 12:40 #3
Hvis jeg skal uddybe det første: man har ikke brug for det til
.h filer som ikke eksieterer på alle platforme og kald af
platforms specifikke funktioner, fordi sådan nogen er der ikke
i Java. Anden brug såsom brug af #define til at lave inline kode
og #ifdef til at ændre behaviour af programmet kan sagtens
kode på anden vis.
Avatar billede arne_v Ekspert
26. juni 2003 - 12:40 #4
svar
Avatar billede lasse37 Nybegynder
26. juni 2003 - 12:43 #5
Undskyld, men hvad er javac for noget?
Avatar billede arne_v Ekspert
26. juni 2003 - 12:49 #6
javac er den compiler der oversætter fra Noget.java til Noget.class - java
er så den JVM der kører Noget.class - hvis du som de fleste gør bruger
en IDE til at udviklek Java i, så ser du ikke de 2 kommandoer, men
de er der - og du kan kalde dem manuelt for at se de options der er.
Avatar billede arne_v Ekspert
26. juni 2003 - 12:51 #7
Eksempel:

* man skriver Test.java i sin editor
* man compiler med:
    javac Test.java
* man kører med:
    java Test

(og som sagt i en IDE er det hele integreret og foregår via GUI)
Avatar billede lasse37 Nybegynder
26. juni 2003 - 12:55 #8
Hvad kan man så med de to kommandoer?

Jeg har nogle tillægs spørgsmål til det java. jeg kan godt sætte pointene lidt op hvis det skal være. *S*
Avatar billede arne_v Ekspert
26. juni 2003 - 13:00 #9
Spørg løs.

Men vær gerne lidt præcis med hensyn til hvad du vil vide.
Avatar billede arne_v Ekspert
26. juni 2003 - 13:02 #10
Med C på Unix kan du f.eks.:

vi test.c
gcc test.c -o test
./test

for at lave et C program, compile det og køre det.

Hvis du skulle lave et Java program kunne du:

vi Test.java
javac Test.java
java Test

for at gøre det samme.
Avatar billede lasse37 Nybegynder
26. juni 2003 - 13:05 #11
Skal prøve at være præcis. *S*

Jeg er lidt forviret omkring det static.. Det fungere vist ikke helt som i c++. kan du uddybe det en smule?
Avatar billede arne_v Ekspert
26. juni 2003 - 13:05 #12
Ligesom man i C skal inlude fra et bestemt directory når man compiler
og linke mod et bestemt bibliotek når man linker for at bruge
noget bestemt funktionalitet kan man i Java tilføje en jar fil
til classpath:

javac -classpath xxxx.jar Test.java
java -classpath xxxx.jar Test.java
Avatar billede arne_v Ekspert
26. juni 2003 - 13:09 #13
static i Java klasser fungerer faktisk ligesom static inden i class'es
i C++ (men absolut ikke som static funktioner og variable i C).

D.v.s. at man kalder dem på klassen og ikke på et objekt.

(C++ bruger så klasse::navn mens Java bruger klasse.navn, men det er bare syntax)
Avatar billede lasse37 Nybegynder
26. juni 2003 - 13:16 #14
Aha, men hvordan kommer static ind i billedet her? :

Public void static main() Hvorfor en static her?
Avatar billede arne_v Ekspert
26. juni 2003 - 13:36 #15
Fordi man ikke har et objekt inden main starter.

Derfor er main nødt til at være en static metode, fordi
så kan man kalde den på klassen.
Avatar billede lasse37 Nybegynder
26. juni 2003 - 14:01 #16
Okay Arne..

Du får pointene nu. Jeg opretter nok et spørgsmål i morgen, så hvis du er interesseret i flere point kan du jo chekke i morgen. *G*

Tak indtil videre..

Lars
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