findHelpSet возвращает нулевой URL при интеграции системы JavaHelp в мое приложение с использованием Eclipse - PullRequest
1 голос
/ 23 октября 2011

Я пытаюсь включить JavaHelp в свое приложение, разработанное под Eclipse.

Я сделал следующие вещи:

  1. Загрузите и извлеките Библиотека JavaHelp в подпапке рабочей области моего проекта.
  2. Добавлены следующие JAR-файлы библиотеки в путь к классу моего проекта (Properties->Java Build Path->Libraries->Add External JARs):

    jh.jar

    jhall.jar

    jhbasic.jar

    jsearch.jar

  3. Я пытался создать обапапку (New->Folder) с именем help_folder и исходную папку (New->Source Folder) с именем help_source_folder и поместите в них файл примера с именем Master.hs (я взял его из архива JavaHelp).

Затем из своего приложения я сделал следующее:

try {
    ClassLoader loader = this.getClass().getClassLoader();
    URL url = HelpSet.findHelpSet(loader, "Master.hs");
    //alternatively : URL url = HelpSet.findHelpSet(loader, "help_folder/Master.hs");
    //alternatively: URL url = HelpSet.findHelpSet(loader, "help_source_folder/Master.hs");
    JHelp jhelp = new JHelp(new HelpSet(loader, url));
} catch (HelpSetException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

Теперь проблема заключается в следующем: объект HelpSet не может быть создан, поскольку URL-адрес null возвращается методом findHelpSet().

Понятия не имею, как это решить.Может кто-нибудь направить меня в правильном направлении?

Ответы [ 2 ]

1 голос
/ 14 ноября 2011

Убедитесь, что папка, которую вы создаете, находится в исходной папке вашего проекта (по умолчанию 'src'). Если это не так, он не будет включен в выходную папку (по умолчанию «bin») при сборке проекта.

0 голосов
/ 12 ноября 2011

Существует две причины, по которым метод findHelpSet () вернет значение null:

  1. Не удалось найти файл мастер-справки в вашем пути к классам. Это часто случалось со мной, когда я использовал IDE, потому что они компилируют все ваши классы в какой-то рабочий каталог и часто «забывают» копировать туда файлы с «неизвестными» расширениями, а hs является расширением, которое наиболее вероятно неизвестно, если вы не добавите его в IDE вручную.

  2. Он мог найти его, но не мог прочитать. Это может быть из-за некоторых проблем безопасности. Также пустой файл считается файлом, из которого невозможно прочитать, что является ошибкой IMO, поэтому убедитесь, что в вашем мастер-файле есть некоторые данные.

...