Avatar billede danni03 Nybegynder
13. august 2004 - 15:19 Der er 16 kommentarer og
1 løsning

underligt ved filelæsning

Jeg kan ikke se hvad der er galt med denne kode, men filen kan ikke findes. Filen ligger sammen med java/class filerne.

String videoPropFile = System.getProperty("video.properties", "video.properties");

    try {
       
      FileInputStream fis = new FileInputStream(new File(videoPropFile));
      videoProperties = new Properties();
      videoProperties.load(fis);
    } catch (IOException ioe) {
      throw new FrameGrabberException(ioe.getMessage());
    }
Avatar billede arne_v Ekspert
13. august 2004 - 15:22 #1
"current directory" er ikke nødvendigvis det samme som "directory med program" !

Brug classloader og getresource i.s.f..
Avatar billede arne_v Ekspert
13. august 2004 - 15:25 #2
Noget a la:

videoProperties.load(getClass().getClassLoader().getResourceAsStream(videoPropFile));
Avatar billede danni03 Nybegynder
13. august 2004 - 21:34 #3
Jeg prøver lige...
Avatar billede danni03 Nybegynder
13. august 2004 - 21:42 #4
Jeg kan ikke Den går ikke nogen steder efter hvad jeg kan se?
Avatar billede arne_v Ekspert
13. august 2004 - 22:23 #5
Mystisk.

Super simpelt eksempel:

C:\>type props.props
a = 1
b = 2
C:\>type Props.java
import java.util.*;

public class Props {
  public static void main(String[] args) throws Exception {
      Properties p = new Properties();
      p.load(Props.class.getClassLoader().getResourceAsStream("props.props"));
      System.out.println(p);
  }
}

C:\>javac Props.java

C:\>java Props
{b=2, a=1}
Avatar billede arne_v Ekspert
13. august 2004 - 22:24 #6
Bruger du pakker i dine klasser ?
Avatar billede danni03 Nybegynder
13. august 2004 - 22:59 #7
ja det gør jeg
Avatar billede arne_v Ekspert
13. august 2004 - 23:02 #8
Ah.

Hvis properties filen ligger sammen med .class filer som er i en oakke skal der
angives pakke i ressource navnet.

Hvis jeg tager mit simple eksempel:

package test;

import java.util.*;

public class Props {
  public static void main(String[] args) throws Exception {
      Properties p = new Properties();
      p.load(Props.class.getClassLoader().getResourceAsStream("test/props.props"));
      System.out.println(p);
  }
}
Avatar billede danni03 Nybegynder
13. august 2004 - 23:08 #9
prøv at hente de to klaser her og kompiler dem.

http://java.sun.com/dev/evangcentral/totallytech/FrameGrabber.zip

Det er de klasser du snakkede om i spm. om ftp.
Avatar billede danni03 Nybegynder
13. august 2004 - 23:08 #10
Jeg mener prøv at køre dem.
Avatar billede arne_v Ekspert
13. august 2004 - 23:13 #11
Nu var det Simon Valter som refererede til dem.

Jeg er total ignorant med hensyn til lyd/grafik/video etc.

Hvad skal jeg se ?
Avatar billede danni03 Nybegynder
13. august 2004 - 23:15 #12
årh... sorry. Jeg ville have dig til at se hvor fejlen kom. Skidt med det - jeg finder ud af noget. Det lader til at der skal mere til end bare som så.
Avatar billede arne_v Ekspert
13. august 2004 - 23:18 #13
Det nemmeste for at komme videre vil være at sætte system property med fuld sti !

Enten på command line:

java -Dvideo.properties=C:/dir/subdir/video.properties ...

eller i main:

System.setProperty("video.properties", "C:/dir/subdir/video.properties");
Avatar billede arne_v Ekspert
13. august 2004 - 23:19 #14
Ikke nogen elegant løsning, men detvar måske en måde at komme videre på.
Avatar billede danni03 Nybegynder
13. august 2004 - 23:42 #15
Jeg prøver...
Jeg synes bare det er lidt underligt at den relative sti ikke funger.
Avatar billede arne_v Ekspert
13. august 2004 - 23:50 #16
Det skal den selvfølgelig også.

Men relativt er relativt i forhold til current dir ikke til hvor class filen ligger.

Du kan evt. prøve at udskrive System.getProperty("user.dir") og så lave stien relativ
i forhold den.
Avatar billede danni03 Nybegynder
26. august 2004 - 22:44 #17
lukket
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