سؤال

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 لحل تبعياتك إذا كنت لا ترغب في القيام بذلك يدويًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top