2015-03-13 2 views
0
package asdf; 
import org.jsoup.Jsoup; 
import org.jsoup.helper.Validate; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

import java.io.IOException; 
public class asdasd { 
    public static void main(String[] args) throws IOException { 
     Validate.isTrue(args.length == 1, "usage: supply url to fetch"); 
      String url = args[0]; 
      print("Fetching %s...", url); 

      Document doc = Jsoup.connect(url).get(); 
      Elements links = doc.select("a[href]"); 
      Elements media = doc.select("[src]"); 
      Elements imports = doc.select("link[href]"); 

      print("\nMedia: (%d)", media.size()); 
      for (Element src : media) { 
       if (src.tagName().equals("img")) 
        print(" * %s: <%s> %sx%s (%s)", 
          src.tagName(), src.attr("abs:src"), src.attr("width"), src.attr("height"), 
          trim(src.attr("alt"), 20)); 
       else 
        print(" * %s: <%s>", src.tagName(), src.attr("abs:src")); 
      } 

      print("\nImports: (%d)", imports.size()); 
      for (Element link : imports) { 
       print(" * %s <%s> (%s)", link.tagName(),link.attr("abs:href"), link.attr("rel")); 
      } 

      print("\nLinks: (%d)", links.size()); 
      for (Element link : links) { 
       print(" * a: <%s> (%s)", link.attr("abs:href"), trim(link.text(), 35)); 
      } 
     } 

     private static void print(String msg, Object... args) { 
      System.out.println(String.format(msg, args)); 
     } 

     private static String trim(String s, int width) { 
      if (s.length() > width) 
       return s.substring(0, width-1) + "."; 
      else 
       return s; 
     } 




    } 

Это мой код. Я использую jsoup, и он дает мне такую ​​ошибку:У меня есть исключение в потоке «основного» java.lang.IllegalArgumentException с jsoup

Exception in thread "main" java.lang.IllegalArgumentException: usage: supply url to fetch 
    at org.jsoup.helper.Validate.isTrue(Validate.java:45) 
    at asdf.asdasd.main(asdasd.java:11) 

Может кто-нибудь помочь?

ответ

-1

Похоже, что метод Validate.isTrue проверяет, есть ли args.length == 1, видя, что это не так, и бросая IllegalArgumentException в результате.

Поэтому, если вы передадите один аргумент, ваш массив аргумент будет выглядеть следующим образом:

arg[0] == "passed_argument"

+0

Спасибо. Этот совет решает проблему «atorg.jsoup.helper.Validate.isTrue (Validate.java:45)». Но все же есть проблема «at asdf.asdasd.main (asdasd.java:11)». –

+0

Он по-прежнему бросает 'IllegalArgumentException' в строке 11 после того, как вы изменили на args.length == 2 и все еще передаете аргумент? – Hypino

+0

К сожалению, да. –

Смежные вопросы