Integracja C i Javy (w tej kolejnosći)

0

Witam

Znowu ja i moje winapi...jest jakieś rozwiązanie zintegrowania Ci Javy - nie że Java wywołuje C poprzez JNI/JNA tylko na odwrót to C ma kontrolę nad Jawą?

na razie tylko socket connection przychodzi mi do glowy...uniwersalne rozwiązanie ale ... coś innego znajdzie się?

Pozdrawiam.

0

Tak to znowu Ty i Twoje problemy ;-)
system("java <program>")
?
:-D

0

Właśnie przed chwilą Ci w innym watku dziękowałem za pomoc z rejestrami:) Także taki zły nie jest...a problemy takie jakie pracodawca zapewnia:P

Co to Twojej odpowiedzi-chodzi mi o coś trochę bardziej skomplikowanego-coś na zasadzie callbacku: po wywołaniu z C to z Javy ma pójsć sygnał inicjujący. C ma czekać na informację o tym. Myślałem nad stworzeniem własnego komunikatu w Javie do windows który potem jakies uwrażliwione okno mogłoby odebrać w swojej metodzie callbacka.

Po stronie Javy na razie umiem sam uwrażliwiać okna na jakiś specyficzny komunikat z windows. Wychwycić go w callbacku. Teraz w sumie myślę jak sam sobie zrobic komunikat...a moze jest jakies API gotowe do integracji C i Javy (w tej kolejności).

0

Pisalem kiedys projekt pod linuksem ktory skladal sie z wielu aplikacji, w tym jedna javowa, i jedna natywna w c. Dzialalo to tak ze demon w c costam robil, a java musiala wynik tej operacji przeprocesowac. Zrobilismy to tak ze ... demon pisal do pliku i java miala watek ktory co 3 sek sprawdzala ten plik. Obie platformy moga uzywac exclusive file locking (java jesli system wspiera). Napisalismy demona c z flock chyba, albo z fcntl, nie pamietam; Java natomiast ma tez mechanizmy do tego. Testowane bylo i zdalo egzamin.
Sockety tez zle nie sa, wydaja mi sie w sumie duzo lepsze niz to co my uzylismy. Przy czym dla nas musialoby to byc non-blocking io po stronie javy, bo jak czegos nie bylo w pliku, to chcielismy jechac dalej, a nie czekac. To co bylo w pliku to raptem pare bajtow.

0

Ano-pomysł z plikiem nie jest zły, a jak jeszcze piszesz ze się sprawdziło...

Socket może jest bardziej elegancki ale wymaga otwierania portu...jedno juz takie zrobiłem i działa ale np integrujać flasha z java natknąłem się na problem uwerzytelniania połączenia-musiałem otwierać drugi socket i wysyłać policy-file. Właśnie zmiany musiały być wtedy po stronie "serwera" (bo trudno napisać SERWER hehe jak to na locaclhoście leci). Teraz serwerem byłoby C i tego sie obawiam że w praniu wyjdą zmiany o wiele większe niż na poczatku się sądzi.

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