Как: 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. И переупаковывать все.