Avatar billede deejay1984 Novice
24. august 2011 - 18:55 Der er 9 kommentarer og
1 løsning

Netbeans, package og CMD

Hej

Jeg er ved at lære Java programmering og har lavet et par forskellige programmer i Netbeans.
Jeg er nu ved at køre det simple helloworld program i CMD.
Jeg kan sådan set godt få det til at virke men ikke som programmet er herunder. Jeg bliver nød til at slette "package helloworld" før det virker. "package helloworld" er noget Netbeans selv laver når et nyt project oprettes.
Jeg skriver nok noget forkert i CMD når jeg skal køre programmet men hvad???
javac virker fint og den opretter en class fil men kan ikke kører programmet når "package helloworld" er en del af programmet

CMD:

cd \
dir

cd Temp (Filen ligger i Temp mappen)
dir

javac Main.java

java Main




PROGRAMMET:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package helloworld;

/**
*
* @author DeeJay
*/
public class Main {

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
        System.out.println("Hello world");
    }

}


Håber I kan hjælpe..
Avatar billede arne_v Ekspert
24. august 2011 - 19:38 #1
Du kan godt bruge package command line, men man skal lige vide hvordan det fungerer.

C:\temp\helloworld\Main.java

(og Main.java har en package helloworld; i toppen)

cd \temp\helloworld
javac Main.java

Nu har du ogsaa en:

C:\temp\helloworld\Main.class

cd ..
java -cp . helloworld.Main

saa skulle det koere.

Pointerne er:
- er skal angives fuld klasse navn inkl. pakke navn til java kommandoen
- pakke struktur og directory struktur skal matche
Avatar billede arne_v Ekspert
24. august 2011 - 20:31 #2
java -cp . helloworld.Main

koerer Kava og leder efter en klasse ved navn helloworld.Main og et af stederne den leder er:

.\helloworld\Main.class

saa hvis . er C:\temp saa bliver det til C:\temp\helloworld\Main.class
Avatar billede deejay1984 Novice
24. august 2011 - 20:46 #3
Det eneste jeg har i min Temp mappe er Main.java indtil jeg selvfølgelig compiler den så får jeg Main.class.
Men der er ikke nogen helloworld i den mappe.

Jeg har egentlig bare taget og kopieret mit program fra Netbeans ind i en tekstfil og placeret den i mappen Temp.
Avatar billede arne_v Ekspert
24. august 2011 - 21:12 #4
opret en helloworld mappe og flyt Main.java derned

det er noedvendigt hvis du vil bruge package
Avatar billede arne_v Ekspert
24. august 2011 - 21:16 #5
Hvis du havde:

package foo.bar.helloworld;

skal filen vaere i

.\foo\bar\helloworld\Main.java
aka
C:\temp\foo\bar\helloworld\Main.java
Avatar billede deejay1984 Novice
24. august 2011 - 21:31 #6
Hej tak for hjælpen nu virker det :)

Hvad er grunden til at Netbeans bruger det package??
Jeg synes ikke der er nogle andre begynder eksempler på programmer hvor de bruger det..

Bare skriv svar så for du pointene og tak for din tid..
Avatar billede arne_v Ekspert
24. august 2011 - 21:37 #7
svar
Avatar billede arne_v Ekspert
24. august 2011 - 21:38 #8
Man bruger altid package i serioes kode.

Det er en maade at struktuere sine klasser paa.
Avatar billede arne_v Ekspert
24. august 2011 - 21:48 #9
Ligesom man ikke har alle sine filer i et directory saa har man heller ikke alle sine klasser i en package.

(og ingen package linie betyder at klassen er i den saakaldte default package)
Avatar billede deejay1984 Novice
24. august 2011 - 22:06 #10
Ok - rart at forstå lidt af hvad man roder med :)
Tak for din tid og hurtige svar.
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

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