Я разработал Java-приложение для командной строки (читай: без графического интерфейса), которое обрабатывает числа на основе заданного набора данных и ряда параметров;и выкладывает ряд HTML-файлов в качестве итоговых отчетов.Эти отчеты содержат большой объем данных в таблицах, поэтому, чтобы дать пользователям простой и быстрый обзор результатов, я использовал библиотеку JUNG2 и создал хороший график.
Вот где это становится интересным;поскольку я хотел бы, чтобы график был интерактивным, его следует развернуть после запуска приложения и создания файлов всякий раз, когда пользователь хочет просмотреть отчеты.Я решил пойти с развертыванием на основе апплета, но меня не устраивает текущая настройка по следующим причинам:
Я хочу сделать программное обеспечение максимально простым в использовании(мои пользователи не будут разбираться в технологиях, и даже в большинстве случаев не будут запуганы).Я действительно хотел бы распространять только один JAR, что заставило меня поместить апплет со всем остальным, что ему нужно, в пакет в тот же JAR, что и основное приложение.
Апплет иОсновное приложение должно сообщать результаты, поэтому я создаю отчет на основе xML, который используется для хранения информации.Пока файлы находятся на локальной машине и не перемещаются, все работает нормально.К сожалению, мне также нужно перемещать файлы.Пользователь должен иметь возможность перенести папку «результатов» на USB-накопитель, пойти куда угодно, подключить накопитель к другому компьютеру и использовать отчет по своему усмотрению.
В настоящее время апплеты реализованы с использованием следующего HTML-кода:
<applet code="package.myapp.visualization.GraphApplet.class"
codebase="file:/home/user/myApp"
archive="myApp-0.2.6-r28.jar"
width="750" height="750">
<param name=input value="results/test_name/results.fxml">
</applet>
Как вы можете видеть, этот апплет не будет работать, если родительская папка перемещена в другое место.
Насколько я знаю, у меня есть пара альтернатив:
a) Измените кодовую базу, чтобы она указывала на URL нашего веб-сервера, где я мог бы разместить файл jar.Это, однако, создает проблему с разрешениями, так как апплет не сможет прочитать файл результатов.Альтернативой является загрузка файла результатов на сервер, когда пользователь хочет визуализировать график, хотя я не уверен, является ли это хорошим вариантом из-за безопасности сервера, а также если это можно сделать так, чтобы загрузка происходила автоматически, не мешая пользователю.
b) Я могу использовать относительный путь к атрибуту кодовой базы, но тогда вся иерархия папок должна быть неизменной при копировании.Это может быть последним средством, если я не могу найти лучший способ сделать это.
c) изменить метод развертывания (хотел бы избежать этой альтернативы, чтобы не тратить больше времени на этапе разработки)
Есть идеи?Я что-то пропустил?Как я могу решить эту проблему?Спасибо,