سؤال
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.sql.*;
public class linksfind{
public static void main(){
String html = "http://www.apple.com/pr/";
Document document = Jsoup.parse(html); // Can also take an URL.
for (Element element : document.getElementsByTag("a")) {
System.out.println(element.attr("href"));
}
}
}
الرجال ، في البرنامج أعلاه ، أثناء التنفيذ أجد هذه الأخطاء. كيف تحل؟ لقد قمت بتنزيل ملف jsoup.jar في موقع المجلد الخاص بي. ماذا علي أن أفعل؟
linksfind.java:8: cannot find symbol
symbol : class Document
location: class linksfind
Document document = Jsoup.parse(html); // Can also take a
^
linksfind.java:8: cannot find symbol
symbol : variable Jsoup
location: class linksfind
Document document = Jsoup.parse(html); // Can also take a
^
linksfind.java:9: cannot find symbol
symbol : class Element
location: class linksfind
for (Element element : document.getElementsByTag("a")) {
المحلول
تلك من JSoup بالطبع.
import org.jsoup.nodes.Document;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;
انظر أيضا JSoup API Documentation.
ومع ذلك ، هناك مشكلة أخرى لن تظهر إلا عند تشغيلها: أنت تمر عنوان URL في نكهة أ java.lang.String
بدل من java.net.URL
. أ String
سيتم التعامل مع HTML عادي ، وليس كمورد. قم بإصلاحه أيضًا:
URL url = new URL("http://www.apple.com/pr/");
Document document = Jsoup.parse(url, 3000);
تحديث: تحتاج فقط إلى التأكد من وجود مكتبات JSoup في كل من ClassPath وقت التشغيل. عند استخدام javac.exe
و java.exe
, ، استخدم ال -cp
جدال. على سبيل المثال لتجميعها:
javac -cp .;/path/to/jsoup.jar com/example/YourClass.java
وتنفيذها:
java -cp .;/path/to/jsoup.jar com.example.YourClass
نصائح أخرى
يبدو أنك تفتقد مكتبة JSoup من ClassPath. ثم يجب عليك استيراد org.jsoup المطلوبة.* الحزم ،
يبدو أن jsoup.jar لا يتم التقاطها بشكل صحيح ومفقود أثناء التجميع. JSoup لديه واحد فقط يعتمد على (Commons Lang), ، لذلك لا يبدو أن التبعيات الخارجية الأخرى المفقودة هي المشكلة الفورية في قضيتك.
قد ترغب في تجربة Maven أو Ivy لحل تبعياتك إذا كنت لا ترغب في القيام بذلك يدويًا.