Почему не работает создание Help

0
14 ноя 2019 22:39
Добрый день. Написал программку при изучении JAVA (десктопную), решил приделать обычную справку. Полазав по сайтам, нашел Ссылка ,т.е. справка Oracle Help for Java (OHJ). Все вроде разжевано. Скачал. Ввел в проект:

import static javax.swing.JOptionPane.*;
// Импорт классов

import javax.swing.*;
import javax.swing.filechooser.*;
import javax.swing.JColorChooser;

import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Scanner;
import java.util.Random;
import java.io.Serializable; // Для сохранения параметров
import java.net.URLEncoder;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;

import oracle.help.Help;
import oracle.help.library.helpset.HelpSet;
import oracle.help.library.helpset.HelpSetParseException;

// Образец класса показа помоши:
// Выводим на экран HELP

class ohjHelp {
public void showHelp() throws HelpSetParseException {

String helpsetFileName = "file://C:/WORKJAVA/RememberWords/src/help/myHelpSet.hs";; // HelpSet file
String firstHelpTopic = "topic1"; // Topic for first showing

Help myHelp = new Help();
Help.setHelpEncoding("UTF-8");

try {
URL urlHS = new URL(helpsetFileName);

HelpSet myHelpSet = new HelpSet(urlHS);

myHelp.addBook(myHelpSet);
myHelp.showNavigatorWindow();
myHelp.showTopic(myHelpSet, firstHelpTopic);
}
catch (Exception ex) {
System.out.println("Exception in showHelp (OHJ).");
ex.printStackTrace();
}
}
}


Потом организовал вызов:
cmenu_help.addActionListener(e -> {
System.out.println("Start OHJ...");

try {
ohjHelp MyHelp = new ohjHelp();
MyHelp.showHelp();
}
catch (HelpSetParseException d) {
d.printStackTrace();
}

});

Соответственно создал необходимые файлы для справки:
1. Образец Helpset файла (myHelpSet.hs):
<?xml version='1.0' ?>
<helpset>
<title>MyProgram</title>
<maps>
<mapref location="MyProgram.map"/>
<homeID>default</homeID>
</maps>
<view>
<name>MyProgram</name>
<label>MyProgram</label>
<type>oracle.help.navigator.tocNavigator.TOCNavigator</type>
<data engine="oracle.help.engine.XMLTOCEngine">MyProgramTOC.xml</data>
</view>
</helpset>

2.Образец Map-файла (MyProgram.map):
<?xml version='1.0' encoding='windows-1251' standalone='yes' ?>
<map version="1.0">
<mapID target="topic1" url="SomeHelpTopic1.html" />
<mapID target="topic2" url="SomeHelpTopic2.html" />
<mapID target="topic3" url="SomeHelpTopic3.html" />
<mapID target="topic4" url="SomeHelpTopic4.html" />
<mapID target="topic5" url="SomeHelpTopic5.html" />
</map>
3.Образец TOC-файла (MyProgramTOC.xml):
<?xml version='1.0' encoding='windows-1251'?>
<toc>
<tocitem text="MyProgram">
<tocitem text="Введение">
<tocitem target="topic1" text="Для кого эта программа"></tocitem>
<tocitem target="topic2" text="Что нового"></tocitem>
</tocitem>
<tocitem text="Приступая к работе">
<tocitem target="topic3" text="Системные требования"></tocitem>
<tocitem target="topic4" text="Получение помощи"></tocitem>
</tocitem>
<tocitem text="Работа с программой">
<tocitem target="topic5" text="Выход из программы"></tocitem>
</tocitem>
</tocitem>
</toc>
4. Образец одного из файлов тем (topic-file SomeHelpTopic1.html):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Topic 1</title>
</head>
<body>
<p>
<b> Topic 1 </b>
<p>
Topic 1
Это WIN-1251.
Для кого эта программа.
<hr>
<p>
</body>
</html>

Остальные 4 файла тем по аналогии.

Подключил библиотеки : help-share.jar , jewt.jar , ohj.jar , oracle_ice.jar , share.jar
Так же прописал и все файлы справки.
Использую среду NetBeans IDE 8.2 .

При отладке создание объекта myHelp еще проходит, а вот на создании myHelpSet происходит выскакивание исключения - не создает объект, т.е. летит в catch (Exception ex).

В "Выводе" пишет:
oracle.help.library.helpset.HelpSetParseException: Unknown error when parsing hs file: Unexpected IOException opening helpset file: file://C:/WORKJAVA/RememberWords/src/help/myHelpSet.hs

Может за бесплатно не хочет работать, но у человека то из сылки выходит...(

Может , кто знает, в чем может быть проблема? Подскажите пожалуйста.

Ответов: 1

0
17 ноя 2019 21:49
Вообщем, подправил map и toc - убрал пробелы, кое что в ANSI по аналогии с авторской версией - в проекте Help открылся, все работает. Но , только в проекте , т.е. если конечный jar файл переношу в любое другое место (кроме исходной папки dist) - он не запускается. Вроде, как дают подсказку, что нужно использовать два файла helpversion_num.jar и oracle_ice.jar , но не понимаю откуда берется helpversion_num.jar и что дальше с ними делать?
Модераторы: Нет
Сейчас эту тему просматривают: Нет