java+javafx+jnlp

0

witam
mam aplikację w której:
main.java uruchamia menu.fx w ten sposób:

 public static void main(String args[]) throws InterruptedException {
        Context context = FXLocal.getContext();
        FXClassType instance = context.findClass("package_name.menu");
        ObjectValue obj = (ObjectValue) instance.newInstance();

        menujava m_i = (menujava) obj.asObject();

           
               m_i.main();

main.fx tworzy obiekty innych klas fx dla przykładu javafx1.fx javafx2.fx javafx3.fx które dziedziczą po odpowiadającyh im klasach java1.java java2.java java3.java (ogólnie wygląda to tak że wszelkie obliczenia działania są wykonywane w klasach *.java, a klasy *.fx są używane do reprezentacji wyników)

Chciałbym, aby aplikacja działała jako java web start jednak nie wiem za bardzo jak to zrobić
i czy w ogóle jest to wykonalne

z góry dzięki za rady :)

0

A czy potrafisz wygenerować jnlp? Należy dodać odpowiednie biblioteki JavaFX. Swoją droga rzuć okiem na: http://poligloci.blogspot.com/2009/07/beauty-and-beast-javafx-12-in-netbeans.html integracja Swing z JavaFX.

0
Koziołek napisał(a)

A czy potrafisz wygenerować jnlp? Należy dodać odpowiednie biblioteki JavaFX. Swoją droga rzuć okiem na: http://poligloci.blogspot.com/2009/07/beauty-and-beast-javafx-12-in-netbeans.html integracja Swing z JavaFX.

nie mam doświadczenia z jnpl nie miałem wcześniej takiej potrzeby że używać web start
artykuł z bloga czytałem jednak zacząłem przygodę z javąfx zanim przeczytałem artykuł i nie chciałem już zmieniać mojego kodu
każda klasafx dziedziczy po klasie napisanej w javie, wydaje mi się to rozwiązanie szybsze i łatwiejsze w implementacji.

0

No to tak... http://jfx.wikia.com/wiki/JNLP - przykładowy plik webstart dla JavaFX.
http://download.oracle.com/javase/1.5.0/docs/guide/javaws/developersguide/syntax.html - manual ;)

Ciebie będą interesowały sekcje:

  • resources gdzie dodajesz listę jarów ściąganych z serwera
  • application-desc - gdzie podajesz klasę uruchamiającą.

Następnie plik umieszczasz na serwerze WWW wraz zasobami. Pamiętaj by ściezki do jarow i innych zasobów były odpowiednie w stosunku do tego co podałeś w jako codebase w tagu jnlp.

0
Koziołek napisał(a)

No to tak... http://jfx.wikia.com/wiki/JNLP - przykładowy plik webstart dla JavaFX.
http://download.oracle.com/javase/1.5.0/docs/guide/javaws/developersguide/syntax.html - manual ;)

Ciebie będą interesowały sekcje:

  • resources gdzie dodajesz listę jarów ściąganych z serwera
  • application-desc - gdzie podajesz klasę uruchamiającą.

Następnie plik umieszczasz na serwerze WWW wraz zasobami. Pamiętaj by ściezki do jarow i innych zasobów były odpowiednie w stosunku do tego co podałeś w jako codebase w tagu jnlp.

dzięki wielkie, zobaczymy co z tego wyjdzie ;)

0

NetBeans 6.9.1 ma wsparcie dla Web Start w Properties projektu (nie wiem jak starsze, ale też powinny mieć). Wystarczy poklikać i powinno działać.

0
donki7 napisał(a)

NetBeans 6.9.1 ma wsparcie dla Web Start w Properties projektu (nie wiem jak starsze, ale też powinny mieć). Wystarczy poklikać i powinno działać.

używam NB 6.9.1 właśnie tam próbowałem wyklikać, wybrałem properties projektu i tam w zakładce Run
zaznaczyłem "Web Start Execution" ale aplikacja się nie uruchamia pojawia się okienko takie jak startuje się jnpl'e ale niestety nic potem. Próbowałem też dla sprawdzenia wybrać "Run in Browser, pojawia się okienko mojego programu w przeglądarce, ale szare i nic w nim nie ma.
Przepraszam za moje laickie wypowiedzi, ale nie korzystałem nigdy z jnpl.

0

A czy masz ustawioną główna klasę dla projektu?

0
Koziołek napisał(a)

A czy masz ustawioną główna klasę dla projektu?

tak główna klasa dla projektu jest w javie ona uruchamia proces pomocniczy z którego przechwytuję później wyniki i uruchamia klasę fx

pomęczę się troszkę według tego co podałeś powyżej jak nie będzie szło to najwyżej napiszę jeszcze

mam jeszcze 2 pytania:
program używa innego zewnętrznego programu, który uruchamia jako proces załóżmy nazwa.exe, jak go dołączyć do jnlp? i czy to w ogóle możliwe?
zakładam że po uruchomieniu tego java webstart na komputer użytkownika ściąga się moja aplikacja razem z nazwa.exe.
jak uruchamiam aplikację jak mogę ją debugować podczas uruchamiania?

0

nazwa.exe można dołączyć jako zasób. Jednak nie będzie możliwości jej uruchomienia, chyba, że odpowiednio skonfigurujesz security i użytkownik się zgodzi i podpiszesz całą aplikację.

0
Koziołek napisał(a)

nazwa.exe można dołączyć jako zasób. Jednak nie będzie możliwości jej uruchomienia, chyba, że odpowiednio skonfigurujesz security i użytkownik się zgodzi i podpiszesz całą aplikację.

dzięki za pomoc
aplikacja już uruchamia się jako webstart, jedynie został właśnie problem z tym plikiem nazwa.exe

a jak dołączyć nazwa.exe jako zasób? dopisać do pliku jnlp? tylko jak?

0

wkopiuj do katalogu src i tyle:) Będzie w jarze a co Ty z nim zrobisz to już Twoja sprawa.

BTW - w netbeans masz zakładkę "Application" i tam podzakładkę "web start"-dajesz "enable webstart i masz malowane jnlp.

0
lipkerson napisał(a)

wkopiuj do katalogu src i tyle:) Będzie w jarze a co Ty z nim zrobisz to już Twoja sprawa.

BTW - w netbeans masz zakładkę "Application" i tam podzakładkę "web start"-dajesz "enable webstart i masz malowane jnlp.

dzięki "web start" nie działał mi dlatego, że jako projekt wybrałem że jest to projekt java fx, a główną klasą była klasa java, wystarczyło główną klasą zrobić klasę fx trochę przerobić kod i netbeans dobrze generuje jnlp.

Wkopiowanie plików do src, nic nie daje, znajdują się one potem w pliku jar, ale się nie uruchamiają. Czy idzie to jakoś obejść? i czy w ogóle aplikacja jnlp może korzystać z innych programów?

0

Żeby odpalilć exeka z jara musisz go najpierw wypakować.

JNLP pewnie daje jakieś mechanizmy do sterowania uprawnieniami. Pamiętam że w przypadku RMI musiałem stosować pliki *.policy.

0
Koziołek napisał(a)

nazwa.exe można dołączyć jako zasób. Jednak nie będzie możliwości jej uruchomienia, chyba, że odpowiednio skonfigurujesz security i użytkownik się zgodzi i podpiszesz całą aplikację.

nie było mnie jakiś czas, ale znów wracam do problemu
aplikację już podpisałem, o java.policy zacząłem czytać, ale z tego co doczytałem użytkownik, aby aplikacja mogła uruchamiać nazwa.exe musiałby swój java.policy również zmieniać. Chciałbym tego uniknąć gdyż użytkownik może nie potrafić tego zrobić. Czy znacie może jakieś rozwiązanie problemu?

1 użytkowników online, w tym zalogowanych: 0, gości: 1