Avatar billede neo_bill Nybegynder
29. oktober 2004 - 13:13 Der er 26 kommentarer og
1 løsning

Hvordan kører jeg .java-filer?

Hej!
Hvordan kan jeg køre 3 .java-filer jeg har?
Avatar billede neo_bill Nybegynder
29. oktober 2004 - 13:14 #1
(Og jeg er helt nybegynder, så lad være med jeres fancy javasprog..)
Avatar billede pham Nybegynder
29. oktober 2004 - 13:15 #2
først skal de compiles med:
javac filnavn.java

og så kan du køre dem ved at:

java filnavn

det forudsætter at du har jdk'et installeret
Avatar billede rbj_fp Nybegynder
29. oktober 2004 - 13:16 #3
Disse filer skal compilers med java compileren.(Javac)

Denne findes i SDK'en(hentes på suns hjemmeside)

Når disse filer er kompileret, skal de køres med filen java.exe
Avatar billede neo_bill Nybegynder
29. oktober 2004 - 13:28 #4
Når jeg har compilet det, med Javac, så kommer der classfiler ud a de der javafiler...

What to do?
Avatar billede rbj_fp Nybegynder
29. oktober 2004 - 13:30 #5
java navnpådinclassfil
Avatar billede pham Nybegynder
29. oktober 2004 - 13:31 #6
java filnavn (uden .class)
Avatar billede neo_bill Nybegynder
29. oktober 2004 - 13:37 #7
Når jeg gør dette kommer den med fejl. Det skal siges at disse filer er MEGET SIMPLE, og de virker fint på andre platforme end Windåze.
Avatar billede rbj_fp Nybegynder
29. oktober 2004 - 13:39 #8
hvilken fejl kommer de med?
Avatar billede _carsten Nybegynder
29. oktober 2004 - 13:40 #9
En af dine java filer indeholder en metode der hedder "main", det er den du skal have fat i

java NavnPåClassFilSomIndeholderMainMetoden
Avatar billede _carsten Nybegynder
29. oktober 2004 - 13:41 #10
public static void main(String[] args){
Avatar billede neo_bill Nybegynder
29. oktober 2004 - 13:41 #11
Forskelllige. Der er 4 classes, og den kommer med disse:
Fil 1,2,3: ArrayIndexOutOfBoundException:0
Fil 4: NoSuchMethodError: main
Avatar billede _carsten Nybegynder
29. oktober 2004 - 13:43 #12
Indeholder en af dine java filer denne metode:  public static void main(String[] args){
Avatar billede rbj_fp Nybegynder
29. oktober 2004 - 13:44 #13
det er ser ud som at de 3 første filer indeholder en main metode, men der er fejl i dem. Ikke kompiler fejl men logik fejl
Avatar billede _carsten Nybegynder
29. oktober 2004 - 13:48 #14
De 3 første filer indeholder næppe en main metode, da de virker på andet end Windåze
Avatar billede _carsten Nybegynder
29. oktober 2004 - 13:54 #15
Hvis de ikke indeholder en main, extender de måske Applet eller JApplet

Altså

public class XXXXXXXXXXXX extends JApplet

eller

public class XXXXXXXXXXXX extends Applet
Avatar billede neo_bill Nybegynder
29. oktober 2004 - 13:56 #16
Det er nogle java-filer, der er beregnet til at man skal kunne taste tal ind. De har virket i tirsdag på SunOS. Kan windows virkeligt ikke det samme?
Avatar billede rbj_fp Nybegynder
29. oktober 2004 - 13:57 #17
Det burde det være...

Prøv lige at poste en af filerne
Avatar billede neo_bill Nybegynder
29. oktober 2004 - 14:01 #18
import java.io.*;
public class Merge {
    public static void main(String[] args) throws IOException {
        File objDir = new File(args[0]);
        String[] fileNames = objDir.list();
        for (int i = 0; i < fileNames.length; i++) {
            File currentFile = new File(args[0] + fileNames[i]);
            BufferedReader in = new BufferedReader(new FileReader(currentFile));
            String strInput, strOutput, strFilename = new String();
            strFilename = fileNames[i];
            strOutput = "" + strFilename.substring(0,strFilename.length() - 4) + ";";
            while ((strInput = in.readLine()) != null) {
                strOutput += strInput + ";";
            }
            System.out.println(strOutput);
        }
    }
}
Avatar billede _carsten Nybegynder
29. oktober 2004 - 14:06 #19
Du skal give class Merge et argument med

Eksempelvis:  java Merge C:\
Avatar billede _carsten Nybegynder
29. oktober 2004 - 14:32 #20
Det argument skal nok være stien til en mappe som indeholder nogle *.txt filer
som den kan læse og udskrive indholdet af.
Avatar billede fastpoint Nybegynder
29. oktober 2004 - 17:43 #21
skal denne linie ikke se sådan ud?
File currentFile = new File(args[0] + fileNames[i-1]);
og denne være sådan
strFilename = fileNames[i-1];

for at fjerne denne fejl?
Fil 1,2,3: ArrayIndexOutOfBoundException:0

?
Avatar billede _carsten Nybegynder
29. oktober 2004 - 17:56 #22
Nej, hvis der skal tilføjes noget skal det være sådan

public class Merge {
    public static void main(String[] args) throws IOException {
      if( args.length == 0){
          System.out.println("Du mangler at angive parameter !");
          System.exit(0);
      }
      ........
      .......
Avatar billede fastpoint Nybegynder
30. oktober 2004 - 01:05 #23
okay spørger også bare;)

men han siger som sagt også at koden virker fint på et andet styresystem så det burde ikke være der fejlen ligger
Avatar billede _carsten Nybegynder
30. oktober 2004 - 09:57 #24
Der er kun én fejl ved Merge klassen, og det er at den ikke selv tager hånd om fejl,
den smider exceptions videre til den klasse som bruger Merge, sandsynligvis en
af de andre klasser som vi ikke har set endnu.
Merge skal have stien til en mappe som parameter, ellers kommer den med fejlen
ArrayIndexOutOfBoundException:0 hvilket betyder at index 0 i arrayet 'args' ikke
eksisterer, args er initieret, men indeholder ingen elementer.
Derfor fejler den allerede på første linie:  File objDir = new File(args[0]);

Første index i et array er 0, så vi retter til det du foreslår
                        File currentFile = new File(args[0] + fileNames[i-1]);

vil du første gang løkken kører forsøge at få fat i index -1 i arrayet fileNames
        for (int i = 0; i < fileNames.length; i++) {
            File currentFile = new File(args[0] + fileNames[i-1]);

koden vil straks fejle.



Prøv at teste nedenstående kode.

public class Test {
    public static void main(String[] args){
      if( args.length == 0){    // Hvis args ikke indeholder nogen elementer
          System.out.println("Du mangler at angive parameter !");
          System.exit(0);
      }
      else{
        for (int i = 0; i < args.length; i++) {
            System.out.println("Element " + i + " i args er: " + args[i]);
        }
      System.out.println("Der er ikke flere elementer args!");
    }
}

Prøv at køre koden UDEN parameter.
Prøv derefter med parameter, altså:  java Test A B C D E F G

Iøvrigt virker Merge klassen perfekt på windows, når den bliver brugt som den er tiltænkt.
Avatar billede neo_bill Nybegynder
04. november 2004 - 00:44 #25
_carsten, will you mary me? :-P

Svar please.
Avatar billede neo_bill Nybegynder
22. november 2004 - 19:43 #26
Svar svar svar ;) Eller der er nul points :]
Avatar billede _carsten Nybegynder
22. november 2004 - 20:12 #27
Sorry - har endnu engang sovet i timen!

Bliver ikke sidste gang du oplever det !

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
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