Avatar billede avnes Nybegynder
16. januar 2002 - 11:39 Der er 3 kommentarer og
1 løsning

Hvordan finde property filer ?

Hej

Jeg har denne lille Java koden:

package ps;
import java.io.*;
import java.util.Properties;
   
public class loadProperties {
        static String fileName = \"C:\\\\PsWork\\\\PsProject\\\\classes\\\\ps2.properties\";
        static String JDBC_PORT = \"\";
        static String HOSTNAME = \"\";
        static String user = \"\";
        static String password = \"\";
        static String SID = \"\";
       
    public loadProperties() {
            try {
              FileInputStream fis = new FileInputStream(fileName);
              BufferedInputStream bis = new BufferedInputStream(fis);
              Properties p = new Properties();
              p.load(bis);
              bis.close();
              JDBC_PORT = p.getProperty(\"JDBC_PORT\");
              HOSTNAME = p.getProperty(\"HOSTNAME\");
              user = p.getProperty(\"user\");
              password = p.getProperty(\"password\");
              SID = p.getProperty(\"SID\");
            }
          catch (Exception e) {}
    }
}

men det er meget irriterende at jeg skal specifisere hele path\'en til ps2.properties, fordi Java programmet skal afvikles på Linux når det er ferdig.

Findes der en workaround på dette ?
Avatar billede carstenknudsen Nybegynder
16. januar 2002 - 11:52 #1
Hvis din properties fil er placeret i et direktorie der indgår
i din classpath kan du godt finde den ved at tokenize
classpath\'en hvorefter du leder igennem alle de direktorier
der forefindes i denne (du skal ikke kigge på jar filer
etc.). Hvis derimod filen ligger andetsteds er det værre
at få fat i den, du ønsker ikke at søge hele filsystemet
igennem. Alternativt kan du kræve at properties filen
ligger i samme direktorie hvor programmet udføres eller
i et bestemt underdirektorie under brugerens hjemmedirektorie.
Sidstnævnte vil så tillade dig at referere til din properties
fil via an URL der skrives på samme måde i unix og windows,
men under alle omstændigheder kræver det lidt ekstra kode.
Avatar billede avnes Nybegynder
16. januar 2002 - 11:59 #2
Hej

Sidstnævnte forslag er meget fint, men har du et kode eksempel på det ?
Avatar billede carstenknudsen Nybegynder
16. januar 2002 - 12:38 #3
Nej det har jeg ikke men du kan gøre nogenlunde som
følger (uden URL men det kan du tilføje)
String fileSeparator = System.getProperty(\"file.separator\");
String home = System.getProperty(\"user.home\");
StringBuffer buffer = new StringBuffer( 1024 );
buffer.append( home );
buffer.append( fileSeparator );
buffer.append( \"propfile\" );
String name = buffer.toString();
sidstnævnte indeholder nu navnet på din fil.
Hvis du vil have angivet underdirektorier kan du
lave noget som
String[] path = new String[] {\"the\",\"full\",\"path\",\"from\",\"home\"};
og så er det bare at løbe denne igennem i en løkke og
tilføje disse til buffer og tilføje fileSeparator bagefter,
og til sidst navnet på filen. Så er problemet løst og vi
havde ikke brug for URL klassen alligevel.
Avatar billede avnes Nybegynder
16. januar 2002 - 12:48 #4
tak :-)
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