Я занимаюсь разработкой Java-приложения, которое выполняет длинный ряд запросов и вычислений и представляет его результаты в виде серии HTML-страниц. Для визуализации графиков я какое-то время играл с библиотекой JUNG, и, похоже, реальная сила библиотеки - поддержка взаимодействия с пользователем, которая, конечно, недоступна, когда график сохраняется как статическое изображение (PNG в моем дело).
Мне было интересно, будет ли это:
а) возможно
б) выполнимо
в) разумный
... для создания апплета во время выполнения основного приложения, который затем может быть вставлен в отчеты HTML и может использоваться в интерактивном режиме после того, как приложение завершило выполнение и пользователь просматривает страницы отчета.
Если это невозможно по техническим причинам; У вас есть альтернативные рекомендации / предложения относительно того, как я могу достичь чего-то подобного?
Спасибо
РЕДАКТИРОВАТЬ: Просто чтобы прояснить концепцию, «основное» приложение является звеном в цепочке событий, и, следовательно, имеет такой отдельный GUI. Идея использования апплета заключается не в том, чтобы имитировать или переносить весь материал из основного приложения на HTML-страницу, а в том, чтобы сделать возможным использование интерактивных инструментов, поставляемых с библиотекой JUNG, когда пользователь просматривает графические результаты ПОСЛЕ выполнения основное программное обеспечение завершено.
Дайте мне знать, если концепция все еще довольно неясна, и я дам вторую попытку объяснить вещи более подробно.
ОБНОВЛЕНИЕ: Следуя полученным советам, благодаря @boffinBrain & @AndrewThompson я написал свой апплет и поместил его в пакет в своем проекте вместе с другими классами, связанными с визуализацией. Иерархия выглядит следующим образом:
my.domain.project
my.domain.project.tests
my.domain.project.visualization
Теперь отчеты HTML создаются в произвольном месте на локальном диске, это особенность, поскольку пользователь предоставляет выходную папку перед запуском «основного» приложения. В моем ReportGenerator
классе (который генерирует эти HTML-файлы) у меня есть следующий фрагмент кода:
File bin = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toString());
String codebase = bin.getParent();
System.out.println(codebase);
String archive = "lib/collections-generic-4.01/collections-generic-4.01.jar";
String applet_name = "bin/my.domain.project.visualization.HierarchyGraphApplet.class";
codebase
Распечатка показывает: file:/home/username/workspace/project
, что является правильным, что я ожидал. Под папкой проекта есть bin / и lib /, а внутри bin - правильная иерархия папок вплоть до моего класса апплета, который также существует.
Теперь, почему я все это записал; хорошо, потому что, когда я пытаюсь запустить свой апплет на отчетах, я получаю:
java.lang.NoClassDefFoundError: bin/my/domain/project/visualization/HierarchyGraphApplet (wrong name: my/domain/project/visualization/HierarchyGraphApplet)
Я читал похожие вопросы, такие как: это или это , но кажется, что проблема в другом. Я дважды проверил орфографию и т.д ...
Есть что-то простое, чего мне не хватает, или есть более сложная проблема под рукой?