Извините, всего один вопрос - Вы похоже, проходите какие-то курсы и пытаетесь "коллективным разумом" решить задачи курса? На мой взгляд, это как минимум не честно. Причем, эти задания, явно не среднего уровня (немного выше).
Что же касается ссылок на microsoft, то они вводят пользователя в заблуждение, говоря о методах "автозагрузки" приложений в ключе "при включении системы". Это совсем не так. В серверных версиях операционных систем windows это не проходит.
CellycoMobiles,
1) Вопрос у нас про "автозагрузку". Вы же в курсе, что все, что помешено в папку "Автозагрузка", запускается только в том случае, если пользователь входит в систему. И процессы, находящиеся в этой папке, будут запущены только после того, как пользователь введет свой логин и пароль. Другими словами, просто включив систему, и не входя в нее, эти процессы запущены не будут. Системный же сервис (служба) запускается независимо от входа пользователя в саму систему.
2) Даже если у меня есть нативное приложение, просто exe-файл, запустить его как системную службу в виндовс я не могу. Для этого нужно его зарегистрировать через соответствующий вызов WINAPI, как системный сервис (службу), это может делать нативное приложение, но оно как минимум должно реализовать эту возможность. И никакая папочка "автозагрузка" тут меня не спасет. В списке системных служб мое приложение не появится.
3) Если уж говорить про graalvm, то опять же, это мне никак не поможет сделать системный сервис (службу) из моего exe-файла.
4) Я рекомендовал не только javalin, но и jooby, который мне ближе. Ну и javalin - прямое ответвление sparkjava, который пошел немного в другую сторону.
Человеку нужно запускать свой сервис, как системную службу, в момент старта системы, а не в момент входа пользователя. А это сильно разные вещи. Я как раз и предложил, как это сделать проверенным и очень распространенным методом, даже в среде программистов и администраторов под windows.
CellycoMobiles, в какую автозагрузку?! Если у нас виндовый сервер, га котором администратор сети по праздникам работает? Сервер выключили удаленно и также включили. Ни один пользователь в консоль на нем не вошел. Как, простите, и из какой «автозагрузки» запустится ваше приложение? И что это за нативное приложение на java, через чего мне его компилировать, простите?
w10club, Не переживайте, во многих языках это тоже так называется "ассоциативный массив", еще называют "ассоциативный список" , "словарь", "отражения", "хеш-список", "список ключ-значение"и т.д. По английски - dictionary, hashmap/hashset, map, hashmap, keymap.... Но в реальности это все почти одни и тоже.
Chijuk,
В автозагрузку нельзя!!!. 1) будут проблемы при входе, 2) будут проблемы при выходе 3) будут проблемы, если не войти. 4) это же свиндовс - значит будут проблемы. Нужно ставить как сервис.
Но нельзя просто вот так взять и что-то запустить в винде как сервис. В ваш свиндоуз ничего засунуть без бубна нельзя. Но можно взять запускалку для томката (nginx и всего, что не может как сервис в свиндоуз) и через нее сделать Windows Service. Брать и читать здесь - https://github.com/kohsuke/winsw
Переименованная внешняя программа и 5 строк конфига - рулят!
Будут вопросы - пишите.
А Д, Ну, PXE предназначен не для установки, а для загрузки. Обычно по PXE грузится или загрузчик (syslinux например), а уже он загружает ядро и ram-диск, либо непосредственно ядро (но это очень редко).
А уже потом, когда ядро и RAM-диск найдут друг-друга в памяти, и в ядре окажутся нужные драйверы, либо они будут подгружены с RAM-диска, управление передастся установщику или другому процессу типа init или systemd.
По dhcp устанавливается сетевое окружение: IP-адрес, маска, имя машины, гейтвей, DNS-сервера и куча всего...
В livecd можно указать свой репозиторий!А можно даже пересобрать livecd со своими настройками.
Вообще-то частая проблема с PXE - забывают подцепить драйверы жестких дисков!!! Проверить можно после загрузки cat /proc/partitions
Эрнэст Фарукшин, если вашим проектом будет кто-то пользоваться, то похоже вы взяли неподъемную ношу для своего уровня. Если только вы - пишите как нравится.
Эрнэст Фарукшин, я могу поехать в лес, нарубить бревен, сделать избушку. Но без знаний она у меня будет херовая, хотя жить мне в ней и придется. Я лучше посмотрю, как строятся избушки, что можно делать, а что нельзя. Для этого мне не нужно строить избу! Мне нужно учиться! Рубить срубы, конопатить, делать стропила, окна и двери, обмениваться опытом. Вот тогда я и себе избу соберу и другим помогу.
Научитесь делать сруб и захотите избу, возьмите готовые двери, окна и крышу.
Эрнэст Фарукшин, да, можно, и нужно. Но не делайте из этого проект, умоляю. Напишите отдельные компоненты, потестируйте, поэкспериментируйте, посмотрите, посмотрите похожие реализации.
Но вот что ошибочно - сразу писать то, что уже написано сотню раз! Вы ведь не изучили ни спринг, ни сокеты, ни сервлеты, ни основные библиотеки.
Да, вы напишете все, постепенно, самостоятельно. Причем, увы, знаний не получите!
Для того, чтобы изучить сокеты - GUI не нужен! Для изучения DI - не нужно знать рефлегсию, а для рефлексии не нужно писать свой DI. Это как с сортировкой - можно сделать и попробовать разные алгоритмы, чтобы понять, как они работают, но не нужно писать свой метод Collections.sort() со своими алгоритмами.
Можно написать свой парсер http, но не нужно в него загонять свои сокеты, и уж тем более делать на его основе свой сервер, тем более, если вы это делаете в первый раз!
Это все равно, что с нуля сделать автомобиль, все детали вытачивая на станке, от колес до цилиндров и тормозных дисков.
Эрнэст Фарукшин, ну так авторизовался, открыл сокет, работаем. Сокет слетел - авторизовываемся заново.
Но если после авторизации передать какой нибудь ключ, то его можно прихранить на клиенте и восстановить сессию без авторизации по этому ключу. Но тогда сервер должен проверить этот ключ на валидность и время жизни, и продолжить сессию с новым сокетом. Это все спокойно делается через куки например., если сервер - http.