Как: JAR -> веб-приложение?

Я искал вокруг, поэтому, пожалуйста, извините меня, если я пропустил это, я знаю, что есть много тем, которые имеют дело с такого рода вещами, но я еще не нашел четкого ответа.

Мой вопрос (я думаю) довольно прост. У меня есть исполняемый файл JAR (созданный в Eclipse), и я хочу разместить его на своем веб-сайте, предположительно в виде апплета. У меня мало понимания апплетов, просто они являются исполняемыми файлами Java, которые запускаются на веб-страницах.

Является ли этот переход тривиальным, или он потребует, чтобы я полностью переписал мою программу? Учитывая это, он сильно зависит от таких компонентов Swing, как JTabbedPanes, JButtons, JLabels и т. Д.

Спасибо!

РЕДАКТИРОВАТЬ: Благодаря ответу, я переписал свои компоненты для удобства апплетов внутри класса, который расширяет апплет и создает мой графический интерфейс, как вы делали в методе run(). Моя проблема сейчас в том, что раньше у меня был метод run для самой программы (это своего рода симуляция). Внутри он просто обновлял некоторые вещи с течением времени, но делал это бесконечным циклом. Без этого кода запуска мой апплет может построить GUI, но GUI не имеет смысла без кода запуска, из-за которого апплет не может загрузить какие-либо компоненты. Какие-нибудь мысли?

EDIT_2: я только что решил использовать Java Web Start. Благодарю.

2 ответа

Решение

Вам не нужно конвертировать его в апплет. Вы можете просто использовать Java Web Start.

Вам нужно объявить класс, расширяющий апплет, который будет точкой входа для вашего апплета:

public class HelloWorld extends JApplet {
    //Called when this applet is loaded into the browser.
    public void init() {
        //Execute a job on the event-dispatching thread; creating this applet's GUI.
        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    JLabel lbl = new JLabel("Hello World");
                    add(lbl);
                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't complete successfully");
        }
    }
}

От run метод (в примере) или init(), вы можете выполнять все, что делает ваша программа. Далее необходимо указать свой апплет в браузере html:

<applet code="yourMainClass.class" height="250" width="350">
  <b>Sorry, you need Java to play this game.</b>
</applet>

В заключение: вам нужно переписать ваш класс точки входа (тот, который содержит метод main), откуда вам нужно вызывать все те же функции Swing-building. И переупаковывать все.

Другие вопросы по тегам