Avatar billede Bennysørensen Praktikant
07. november 2003 - 17:58 Der er 11 kommentarer og
1 løsning

Java fra kommandpromt

Jeg leder efter en tutorial om hvordan man kører java fra en CMD.

Jeg har f.eks fået en opgave med "Lav et program, FileInfo.java, der tager stien til en mappe som opstartsparameter (så man f.eks kan køre programmet med
java FileInfo c:\oop\opgaver)".

...hvem kender sådan én?

Til dén opgave har jeg lavet et program, hvor mainmetoden kalder konstructoren (surprise!) med en sti, men aner ikke om det kan køres fra en cmd.
Avatar billede soreno Praktikant
07. november 2003 - 18:02 #1
Du skal tilføje c:\path\til\java\bin til PATH variablen.

Derefter genstarte (afhængig af hvordan du gør og hvilket Operativ System du bruger).

Så kan du åbne prompten og skrive:
javac FileInfo.java
java FileInfo
Avatar billede soreno Praktikant
07. november 2003 - 18:05 #2
Tilføj til path i XP (muligvis også win2k):
Højreklik på "My Computer" -> "Properties"
Advanced -> "Environment variables"

Ved "User variables" vælges "New" ->
  Variable name = PATH
  Variable value = c:\path\til\java\bin

Hvis path allerede findes skal du tilføje ";c:\path\til\java\bin" tilsidst i strengen.
Avatar billede _carsten Nybegynder
07. november 2003 - 18:26 #3
Dit spørgsmål kan åbenbart opfattes på flere måder, jeg opfatter det lidt anderledes end soreno

Prøv at kigge på nedenstående klasse.

import java.io.*;

public class FileInfo{

    public FileInfo(){
          bla.. bla......
          .....
    }
   
    public FileInfo(String path){
        File f = new File(path);
    System.out.println(path);
    }
   
    public static void main FileInfo(String[] args){
        // Parameteren 'args' indeholder de ting du i din CMD skriver efter
        // 'java FileInfo'
        // Hvis du i CMD skriver: java FileInfo c:\oop\opgaver
        // vil denne klasse udskrive "c:\oop\opgaver" i CMD
        // NB: jeg har kun taget højde for, at du angiver én parameter

        if(args.length > 0)
        new FileInfo(args[0]);
        else
        new FileInfo();
}
Avatar billede dresen Nybegynder
08. november 2003 - 03:11 #4
Ja, det er lidt svært at udlede, hvad det er du gerne vil have hjælp til.

- Hvis du er i tvivl om, hvordan du sætter din path, kan du med fordel se på svaret fra soreno. 

- Hvis du ønsker en tutorial, kan du med fordel følge nedenstående link. Her gennemgåes alle faser man skal igennem for at kunne lave sit første program - herunder også hvordan man kører programmet fra cmd og opsætning af path/paths, http://www.ictp.trieste.it/~manuals/programming/Java/tutorial/getStarted/cupojava/win32.html.

- hvis du er i tvivl om, hvordan du giver argumenter fra din kommando-linie i cmd, så kan du se på carstens eksempel, og evt. på dette link.
http://java.sun.com/docs/books/tutorial/essential/attributes/cmdLineArgs.html
Avatar billede dresen Nybegynder
08. november 2003 - 03:15 #5
carsten, kan du forklare din main-metode.

Har aldrig set lignende før - men har dog heller ikke så stor erfaring :)
Avatar billede _carsten Nybegynder
08. november 2003 - 15:19 #6
Tjaaaaa - jeg ved faktisk ikke om det kan uddybes ret meget mere end jeg har gjort, men jeg kan da prøve

Men det som jeg kan tilføje af kommentarer er at klassen indeholder 2 konstruktører, hvoraf den ene er en default konstruktør og den anden tager en String som parameter, herefter checker jeg om args.length er større end 0, hvis det er tilfældet køres filen fra CMD med en eller anden parameter

  // Nedenstående kalder en af de 2 konstruktører afhængig af parametervalg
  if(args.length > 0)
      new FileInfo(args[0]); // Med parameter: C:\>java FileInfo c:\oop\opgaver
  else
      new FileInfo();        // Uden parameter:  C:\>java FileInfo


Havde jeg været lidt mere smart i illustrationen, havde jeg skrevet de 2 konstruktører på denne måde.

    // Første konstuktør
    // C:\>java FileInfo
    public FileInfo(){
      System.out.println("Class FileInfo instatieret uden parameter");
    }

    // Anden konstruktør
    // C:\>java FileInfo c:\oop\opgaver
    public FileInfo(String path){
      System.out.println("Class FileInfo instatieret med parameteren " + path);
    }
Avatar billede _carsten Nybegynder
08. november 2003 - 15:49 #7
Mon ikke det er tid til et svar
Avatar billede dresen Nybegynder
08. november 2003 - 17:34 #8
Hej carsten.

Jeg var alt for upræcis, jeg forstod godt selve klassen - de to konstruktører og hvad der sker i main. Men kan det lade sig gøre med en main metode, hvor der skrives:

public static void main FileInfo(String[] args){

Det var dette jeg var i tvivl om.

NB - det er ikke mig der har oprettet spørgsmålet.

/dresen
Avatar billede Bennysørensen Praktikant
08. november 2003 - 17:40 #9
Jeg ville gerne give points til både Dresen og Carsten, men Dresen har kun kommenteret, jeg kan ikke give points til ham...
Avatar billede dresen Nybegynder
08. november 2003 - 17:52 #10
Det er helt i orden - kunne jo alligevel ikke bringe meget ny på banen.

Fik du løst dit problem ?!
Avatar billede Bennysørensen Praktikant
08. november 2003 - 17:57 #11
Løst og løst...jeg har været på arbejde natten, så der er ikke sket så meget. Men jeg har lært hvad 'args' i main-signaturen bruges til (dét havde jeg aldrig selv fundet ud af), og fået dét liink til en tutorial, jeg spurgte efter, så nu har jeg en masse at arbejde med. Jeg er godt tilfreds :o)
Avatar billede dresen Nybegynder
08. november 2003 - 22:44 #12
... det lyder godt.

Jeg har været lidt uopmærksom mht. til adressen for det ene link postede.

Linket til "my first cup of java", er ikke fra Suns hjemmeside, og efter et hurtigt check, viste det sig at de links der er anført på hovedsiden ikke virker.

Tilgå i stedet for "my first...." fra Suns side: http://java.sun.com/docs/books/tutorial/getStarted/cupojava/index.html

Dette er en del af en større tutorial, som du måske også kan have glæde af at kigge på
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