Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

JNI+JAR+DLL

1 view
Skip to first unread message

overkill

unread,
Dec 2, 2009, 7:42:06 AM12/2/09
to
witam! mam maly problem dotyczacy wczytywania dll-ki umieszczonej w jar-rze jako
resource. i tutaj jest problem poniewaz musi ona byc wydobyta z jar-a a do
dopiero pozniej wczytana. jak cos takiego zrobic? znalazlem pare przykladow w
necie ale moj przypadek jest troche inny i nie bardzo pasuja.

public class MojaKlasa extends Applet
{

static {System.loadLibrary("MyLibrary");}

public native void paint(Graphics g);

public void main( String[] argv )
{
Frame frame = new Frame();
Applet applet = new MojaKlasa();

frame.setSize(650,440);
frame.setLayout(new BorderLayout());
frame.add(applet);
frame.setVisible(true);
}
}

jak widac moja dll-ka wczytywana jest na samym poczatku i jest z nia powiazana
metoda paint, ktora istnieje wewnatrz niej i rysuje. Przyznam sie szczerze ze
wolalbym zeby ta biblioteka wczytywala sie wtedy kiedy ja chce i zeby to bylo w
main. Np zeby przed tym jak sie wczyta mogl cos pokazac na applecie i dopiero
pozniej wczytac ta biblioteke i od tego czasu metoda paint bylaby zwiazana z
bibioteka. Ale jezeli nie da sie to trudno. Przepraszam, bo moze cos zle pisze
ale potrzebuje napisac cos takiego w javie i nie mam duzego doswiadczenia, a JNI
to nie taka prosta sprawa. Dziekuje za jakiegolwiek wskazowki!
pozdrawiam

--
Wys�ano z serwisu OnetNiusy: http://niusy.onet.pl

Bartek Jablonski

unread,
Dec 2, 2009, 8:35:27 AM12/2/09
to
On Dec 2, 1:42 pm, "overkill" <overkillWYTNI...@vp.pl> wrote:
> jak widac moja dll-ka wczytywana jest na samym poczatku i jest z nia powiazana
> metoda paint, ktora istnieje wewnatrz niej i rysuje. Przyznam sie szczerze ze
> wolalbym zeby ta biblioteka wczytywala sie wtedy kiedy ja chce i zeby to bylo w
> main. Np zeby przed tym jak sie wczyta mogl cos pokazac na applecie i dopiero
> pozniej wczytac ta biblioteke i od tego czasu metoda paint bylaby zwiazana z
> bibioteka. Ale jezeli nie da sie to trudno. Przepraszam, bo moze cos zle pisze
> ale potrzebuje napisac cos takiego w javie i nie mam duzego doswiadczenia, a JNI
> to nie taka prosta sprawa. Dziekuje za jakiegolwiek wskazowki!
> pozdrawiam

Zdaje mi sie, ze nie ma innej metody, niz wypakowac dll z jara (jar to
zip tak na prawde) do katalogu np tmp i stamtad zalagowac.

Bartek

Mikolaj Rydzewski

unread,
Dec 2, 2009, 9:16:35 AM12/2/09
to
overkill wrote:
> Np zeby przed tym jak sie wczyta mogl cos pokazac na applecie i dopiero
> pozniej wczytac ta biblioteke i od tego czasu metoda paint bylaby zwiazana z
> bibioteka.

Czy wogole mozna ladowac biblioteki dll z poziomu appletow?

Java Web Start ma wsparcie dla JNI.

Piotr Pietrzak

unread,
Dec 3, 2009, 7:20:11 AM12/3/09
to
On 2 Gru, 15:16, Mikolaj Rydzewski <m...@ceti.pl> wrote:
> overkill wrote:
> > Np zeby przed tym jak sie wczyta mogl cos pokazac na applecie i dopiero
> > pozniej wczytac ta biblioteke i od tego czasu metoda paint bylaby zwiazana z
> > bibioteka.
>
> Czy wogole mozna ladowac biblioteki dll z poziomu appletow?
Nie można, ale nawet gdyby było można, to dll niektórym nie zadziała,
bo mają np linuxa, playstation, komórkę, pralkę, lodówkę - jest java a
nie ma dll...
Jedyna Słuszna Platforma nie jest już jedyna - widzę coraz więcej
ludzi do przeglądania netu używających komórek. Do tego konsole, które
dają radę i np parleys.com bardzo ładnie wygląda na PS3, nie mówiąc o
youtube, który ma specjalne wydanie dla PS3.

> Java Web Start ma wsparcie dla JNI.
Zanim użyje się JNI trzeba co najmniej 100 razy odpowiedzieć sobie na
pytanie - czy faktycznie jest taka potrzeba?
Poza tym łączenie kodu java z bibliotekami jest bardzo mało wydajne i
to co miało niby przyspieszyć faktycznie tylko spowalnia.
PP

Brzezi

unread,
Dec 3, 2009, 8:22:17 AM12/3/09
to
�ro, 02 gru 2009 o 13:42 GMT, overkill napisa�(a):

> Przyznam sie szczerze ze wolalbym zeby ta biblioteka wczytywala sie wtedy
> kiedy ja chce i zeby to bylo w main. Np zeby przed tym jak sie wczyta
> mogl cos pokazac na applecie i dopiero pozniej wczytac ta biblioteke i od
> tego czasu metoda paint bylaby zwiazana z bibioteka.

Ale skoro tak bys wolal zrobic, to dlaczego tak nie robisz?

Pozdrawiam
Brzezi

jolz

unread,
Dec 3, 2009, 12:45:14 PM12/3/09
to
>> Czy wogole mozna ladowac biblioteki dll z poziomu appletow?
> Nie można

Czemu tak uwazasz?

Piotr Pietrzak

unread,
Dec 3, 2009, 6:44:09 PM12/3/09
to
To była najprostsza odpowiedź bez wnikania w szczegóły. Znam również
prawdziwą odpowiedź - tzn. że można, ale pod kilkoma warunkami. W
najprostszym przypadku to nie zadziała, bo: security, niezgodność z
OS, niezgodność z arch itd.

Faktycznie w tym przypadku dość bezsensownie zasugerowałem,że "nie
można", gdy tymczasem bardziej myślałem o tym, że "u mnie nie działają
dll bo mam chyba so, ale i tak to pewnie nie zadziała". Dziękuje, że
zwróciłeś mi uwagę - nie powinienem tak napisać, tylko rozszerzyć i
przeredagować to zdanie. Swoją drogą jak ciężko jest napisać tak dobre
JNI, aby działało na wszystkich platformach na jakich jest java i
przeglądarka.

Właśnie niebezpiecznie zbliżyłem się do tematu OS - tym razem nie chcę
dyskutować o tym, że istnieją inne platformy niż Jedyna Słuszna ze
swoimi dll-ami.

0 new messages