gặp một vấn đề tương tự như tôi thấy rằng tôi không có cú pháp chính xác trên dòng nhập khẩu trong java source
thực hiện một biên dịch như sau (trên cửa sổ):
javac -cp .;commons-io-2.4.jar AgeFileFilterTest.java
với commons-io-2.4.jar trong thư mục tương tự như AgeFileFilterTest.java
tôi đã nhận được báo lỗi:
import org.apache.*;
^
AgeFileFilterTest.java:24: error: cannot find symbol
displayFiles(directory, new AgeFileFilter(cutoffDate));
^
Nó được khó hiểu bởi vì nó dường như tất cả là tại chỗ; jar là trong thư mục, được định nghĩa trong classpath, và sau khi kiểm tra nội dung jar tôi có thể thấy những gì đã được referenced- sử dụng 7zip tôi mở file jar và có thể nhìn thấy:
commons-io-2.4.jar\org\apache\commons\io\filefilter\AbstractFileFilter.class
sau đó tôi đọc trong một số bài "bạn không nhập khẩu các lớp" đó đã cho tôi suy nghĩ về cú pháp nhập khẩu ...
tôi đã thay đổi nó từ:
import org.apache.*;
thay đổi nó để:
import org.apache.commons.io.filefilter.*;
và wala biên dịch lỗi đi sử dụng:. javac -cp; commons-io-2.4.jar AgeFileFilterTest.java
và chương trình đã làm việc sử dụng
java -cp .;commons-io-2.4.jar AgeFileFilterTest
Đây có phải là lỗi biên dịch từ javac chạy trên một dòng lệnh, hoặc từ IDE của bạn? Nó không đủ để đặt các jar trong cùng một thư mục - bạn cần phải thêm nó vào classpath của công cụ bạn đang sử dụng. –
'package org.apache.pdfbox.pdmodel.PDDocument;' Gói của bạn không phải là tên đủ điều kiện của một lớp học hiện có! –
cảm ơn andrew. tôi sẽ loại bỏ nó ngay bây giờ. – user1952529