Portál AbcLinuxu, 23. dubna 2024 13:09


Dotaz: Kompilace Javy do nativního kódu

27.11.2006 02:02 Radek Šlesinger | skóre: 13 | Adamov
Kompilace Javy do nativního kódu
Přečteno: 662×
Odpovědět | Admin
Zdravím,

chtěl bych se zeptat, zda je možné nějakým relativně snadným způsobem zkompilovat javovskou aplikaci s využitím gcj a libgcj. Konkrétně se jedná o program OmegaT. Pomocí ant a gcj (aktuální Debian unstable) se podaří zdrojáky přeložit do bytecode. Dalo by se nějakou modifikací souborů pro build (případně vlastností projektu v NetBeans) dosáhnout kompilace do nativního kódu, nebo jsou třeba i zásahy do zdrojů programu?

Předesílám, že Javu ani její vývojové nástroje jinak neovládám.

Děkuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.11.2006 08:51 jan.xxx
Rozbalit Rozbalit vše Re: Kompilace Javy do nativního kódu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano, lze kompilovat i do nativního kódu. Aplikace je pak většinou rychlejší, ale i ma větší binárky. Na druhou stranu ale dodám, že cokoliv s grafikou se mi přeložit nepodařilo :-( Dobrý manuál byl na IBM.

Jinak existují i komerční produkty (http://www.excelsior-usa.com) a ty zvládnout kompilovat i JARy.
27.11.2006 10:08 petr
Rozbalit Rozbalit vše Re: Kompilace Javy do nativního kódu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano, GCJ (GNU ClassPath) je správná volba, ale v současné době má naimplementováno asi tak 1% ze standardního API Javy (kus AWT tam myslím je, ale Swing rozhodně ne)... Takže zatím fungují jen aplikace kategorie Hello World:-(
27.11.2006 11:09 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: Kompilace Javy do nativního kódu
No to bych netvrdil, Classpath je na tom celkem dobře, běhá pod tím i Eclipse. Ve Fedoře a Ubuntu dokonce distribuují Eclipse zkompilovanou do binárního kódu pomocí gcj a classpath. A s těma procentama je to spíš úplně naopak. Jediné, co zatím chybí, jsou 1.5 featury, ale ty budou po releasu 0.93 v cvs.

Na hromadné kompilování kódu (přesněji již hotových .jar souborů) do binárky z Javy může posloužit návod, jak to udělat pro Eclipse.
vim ~/.emacs
27.11.2006 14:36 petr
Rozbalit Rozbalit vše Re: Kompilace Javy do nativního kódu
Možná je to tím, že Eclipse nepoužívá Swing ale SWT...
4.12.2006 00:47 Radek Šlesinger | skóre: 13 | Adamov
Rozbalit Rozbalit vše Re: Kompilace Javy do nativního kódu
Tak jsem se k tomu konečně dostal, kompilace .jarů podle návodu se podařila. Ale po spuštění
gij -Dgnu.gcj.precompiled.db.path=omegat.db --verbose:class -jar OmegaT.jar
v adresáři s přítomným OmegaT.jar i omegat.db (další .jar jsou v ./lib, .jar.so v ./lib-native, v databázi uvedeny jsou) se v hlášeních žádný .so soubor neobjeví, vše pouze .jar.

Akorát mi teď dochází, že původní účel kompilace -- získat "normálně vypadající" GTK program je asi mimo. K té domněnce mě původně přivedla závislost balíku libgcj7-awt na knihovnách GTK a spol., ale to jsem nejspíš vedle. Navíc stejně asi bude třeba Java od Sunu, protože pod gij se při pokusu o vytvoření/otevření projektu dočkám pouze StringIndexOutOfBoundsException.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.