Witam, chcę napisać prosty system, który o danej godzinie będzie wysyłał użytkownikowi powiadomienie. Przy obmyślaniu projektu jednak pojawiło się u mnie pytanie. mianowicie.
W jaki sposób optymalnie byłoby inicjować autostart aplikacji, skoro będzie ona częścią innego programu ?
Nie piszę aplikacji Java, ale wydaje mi się, że jeżeli aplikacja jest częścią innej aplikacji to powinna tym zarządzać aplikacja nadrzędna. Czyli to ona jest uruchamiana wraz ze startem systemu i monitoruje aplikacje podrzędne
A chodzi tu o Windowsa?
@Rozumek29:
Możesz zrobić skrypt instalacyjny Twojej aplikacji i tam ustawić autostart tej "podrzędnej". Na Windowsie jest to zwykle dodanie skryptu batchowego w odpowiednie miejsce (znajdziesz łatwo w googlach)
Gdzieś w tym kierunku bym szukał jeśli chodzi o Windows :)
Czyli właściwie warto po prostu warto wyeksportować ten system powiadamiania, który ma być podrzędy jako osobny plik jar.
Dodaj odpowiedni wpis w rejestrze tak żeby apka uruchamiała się po zalogowaniu użytkownika. Wersja koszerna to dodanie ikonki w tray'u (to obok zegarka).
Dodaj wpis pod klucz:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
https://docs.microsoft.com/en-us/windows/win32/setupapi/run-and-runonce-registry-keys
Ponieważ to java, to jako ścieżkę do programu wykonywalnego musisz podać ścieżkę do programu java.exe
z parametrem -jar your/app/path/duper-super.jar
. Alternatywnie możesz użyć jednego z narzędzi to opakowania jar'a w exe np. https://github.com/libgdx/packr
Jeżeli chcesz żeby to się uruchamiało wraz ze startem systemu nawet jeżeli użytkownik nie jest zalogowany to użyj klucza HKEY_LOCAL_MACHINE ale w mojej opinii lepiej wtedy zrobić własną usługę i zarejestrować ją w systemie za pomocą narzędzia sc.exe
.
Możesz użyć harmonogramu zadań. Niech odpala jakiś skrypt .bat wg wskazanych warunków.