Đây là lần đầu tiên tôi gặp sự cố như vậy với việc truy cập tệp bằng Java trên Linux. Vấn đề cũng giống như tiêu đề nói - FileNotFoundException
được ném khi tệp thực sự tồn tại. Hơn nữa, ứng dụng có cùng cấu hình (tệp props.txt) chạy như trên cửa sổ. Hãy để tôi cung cấp một chút giao diện điều khiển đầu raTại sao FileNotFoundException được ném trong khi nó tồn tại trên 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$
và đây là mã Java chịu trách nhiệm tạo ra rằng đầu ra (ít nhất là sau khi gọi ./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"));
}
Vậy tại sao các tập tin props.txt
không được tìm thấy khi nó thực sự ở đó?
Đường dẫn chính xác có thực sự là '/ usr/home/datasu /' không? Tôi không biết phiên bản Linux/unix của bạn nhưng không phải là nó thường là somehwere tại '/ home/...'? Đặc biệt là vì bạn hiển thị '~ /' trong dòng đầu tiên mà tham chiếu đến thư mục chính. – DrColossos
Đây là kết quả PWD cho bạn: datasu @ dedi2392: ~/netcrawler/dkpto $ pwd -> /usr/home/datasu/netcrawler/dkpto – Antoniossss
Cú pháp chính xác của 'args' mà bạn đang chuyển đến' readProperties là gì '? –