0

我正在尝试让 crawler4j 的基本形式运行,如此处所示。我通过定义 rootFolder 和 numberOfCrawlers 修改了前几行,如下所示:

public class BasicCrawlController {

    public static void main(String[] args) throws Exception {
            if (args.length != 2) {
                    System.out.println("Needed parameters: ");
                    System.out.println("\t rootFolder (it will contain intermediate crawl data)");
                    System.out.println("\t numberOfCralwers (number of concurrent threads)");
                    return;
            }

            /*
             * crawlStorageFolder is a folder where intermediate crawl data is
             * stored.
             */
             String crawlStorageFolder = args[0];

              args[0] = "/data/crawl/root";

            /*
             * numberOfCrawlers shows the number of concurrent threads that should
             * be initiated for crawling.
             */
            int numberOfCrawlers = Integer.parseInt(args[1]);

            args[1] = "7";


            CrawlConfig config = new CrawlConfig();

            config.setCrawlStorageFolder(crawlStorageFolder);

无论我如何定义它,我仍然收到错误

Needed parameters: 
 rootFolder (it will contain intermediate crawl data)
 numberOfCralwers (number of concurrent threads)

我认为我需要“在运行配置”窗口中设置参数,但我不知道这意味着什么。如何正确配置此基本爬虫以使其启动并运行?

4

1 回答 1

2

使用 javac 关键字编译程序后,您需要键入以下内容来运行它:

java BasicCrawler 控制器“arg1”“arg2”

该错误告诉您在运行程序时没有指定 arg[0] 或 arg[1]。另外,这个“ args[1] = "7";" 是什么?在您已经收到爬虫数量参数之后?

看起来你正在尝试删除前 5 行,因为无论如何你都在尝试使用硬编码值。然后将 crawlForStorage 字符串设置为您的目录路径,并将 numberOfCrawlers 设置为 7。这样您就不必指定命令行参数。如果您想使用命令行参数,请摆脱上面的硬编码值并在 CL 中指定它们

于 2012-04-03T21:15:12.523 回答