Questa è la prima volta che ho riscontrato questo problema con l'accesso ai file da parte di Java su linux. Il problema è come l'intestazione dice - FileNotFoundException
viene generato quando il file esiste realmente. Inoltre l'applicazione con la stessa configurazione (file props.txt) funziona come dovrebbe su Windows. Permettetemi di fornire un po 'di output su consolePerché viene emessa FileNotFoundException mentre esiste su linux
[email protected]:~/netcrawler/dkpto$ ls -l total 20 -rwxrw-rw- 1 datasu datasu 114 Aug 7 15:53 autoupdate drwxr-xr-x 4 datasu datasu 4096 Aug 8 11:57 data drwxr-xr-x 2 datasu datasu 4096 Aug 8 11:57 log -rw-rw-rw- 1 datasu datasu 32 Aug 8 12:44 props.txt -rwxrw-rw- 1 datasu datasu 126 Aug 8 12:55 propsUpdate [email protected]:~/netcrawler/dkpto$ ./propsUpdate Parent: /usr/home/datasu/netcrawler/dkpto 1# -> propsUpdate 2# -> autoupdate 3# -> props.txt 4# -> data 5# -> log (No such file or directory)ava.io.FileNotFoundException: /usr/home/datasu/netcrawler/dkpto/props.txt at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(Unknown Source) at netcrawler.Autoupdater.readProperties(Autoupdater.java:71) at netcrawler.Autoupdater.start(Autoupdater.java:54) at netcrawler.Autoupdater.main(Autoupdater.java:47) [email protected]:~/netcrawler/dkpto$ java -version java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06) Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode) [email protected]:~/netcrawler/dkpto$
e qui è il codice Java responsabile della generazione che l'uscita (almeno dopo aver chiamato ./propsUpdate
)
private void readProperties(String args) throws FileNotFoundException, IOException {
System.out.println("Parent: " + new File(args).getAbsoluteFile().getParentFile().getAbsolutePath());
CommonTools.PrintArray(new File(args).getAbsoluteFile().getParentFile().list());
properties.load(new FileInputStream(new File(args).getAbsoluteFile())); // this line throws the exception
stageNumber = Integer.parseInt(properties.getProperty(PROP_STAGE_NUMBER_KEY, "0"));
}
Allora, perché non si trova il file props.txt
quando è effettivamente lì?
Il percorso corretto è veramente '/ usr/home/datasu /'? Non conosco la tua versione linux/unix, ma di solito non si trova a '/ home/...'? Soprattutto perché mostri '~ /' nella prima riga che fa riferimento alla home directory. – DrColossos
Ecco il risultato PWD per te: datasu @ dedi2392: ~/netcrawler/dkpto $ pwd -> /usr/home/datasu/netcrawler/dkpto – Antoniossss
Qual è la sintassi esatta di 'args' che stai passando a' readProperties '? –