Zrejme to ma prinos pri rychlosti buildov a podla mna pred vekmi to bola
zrejme jedine riesenie problemu, ako pouzivat kompilator krizom cez
rozne virtualmachiny a rozumne s nim interagovat. A este mi napadlo, ze
realne je mozne pouzivat i metody triedy, ktora ma syntakticke chyby
(zrejme vhodne vo vyvoji).
Inak ja som si toto spravanie kompilatora paradoxne uvedomil az pri
pisani predoslych mailov a nikdy mi to neprekazalo. Chybny zdrojak
Eclipse sice skompiluje, ale okamzite su cervene podciarknute nespravne
konstrukty a vo view Problems vidim prehladne vsetky chyby. Ak spustate
projekt s chybami, dostanete hlasku, ci ho naozaj chcete spustit a ide sa.
View "Problems" je vsak standardne nastaveny dost divne, pretoze ukazuje
chyby v celom workspace (to je tych Vasich 400 errorov) a i pre mna je
to chaos. Ja si standardne nastavujem zobrazovat len problemy v aktualne
zvolenom elemente v potomkoch, t. j. ked klikam po packagoch, tak sa mi
zobrazuju kumulativne chyby za cely balicek a ked editujem zdrojak,
vidim len chyby v nom. Da sa to nastavit vo vlastnostiach viewu,
Configure Contents, vytvorit novy Configuration, pomenovat ho, nastavit
Scope na ,,Selected item and its children".
Volitelne si este mozete vypnut grupovanie a potom vidite presne to, co
v NetBeansackej konzole, ale v ovela prehladnejsej forme, pretoze si to
mozete triedit, grupovat, filtrovat podla povodu a podobne.
Mimo Eclipse asi ECJ nema valny zmysel, resp. nevidim ho. (V
buildovacich nastrojoch obvykle ide i tak postupnost clean, build).
RN
On 26. 4. 2011 17:01, Dusan Msk wrote:
Ahoj.
2011/4/26 Robert Novotny <robert.novo...@upjs.sk
<mailto:robert.novo...@upjs.sk>>
A ako povedal kolega, Eclipse kompilator ma ine spravanie v
pripade chyb:
public class Thing {
public void getSecret() {
return x;
}
public static void main(String[] args) {
new Thing().getSecret()
}
}
ECJ to radostne skompiluje a za behu metoda getSecret() hodi
java.lang.Error: Unresolved compilation problem.
Aky to ma realny prinos mimo jsp? Momentalne nedobrovolne prechadzam
na eclipse a tato vlastnost eclipse kompilatoru
mi nesmierne vadi *1 ( ked sa teda oprostim sprostych slov ). Z
netbeans som zvyknuty pri neuspesnom builde hodit zrak do konzoly a
hned opravit problem, v eclipse ziadnu konzolu nevidim, zato mam akusi
zalozku "problems" a v nej svieti 400 error-ov :-)
Na spolupracu eclipse-maven to takisto neprida, eclipse si tam cosi
kdesi chrousta a ja potom na hudsone mozem
cumiet ako pako, preco to nefunguje :-)
*1 - predpokladam, ze sa to da niekde vypnut, zatial som to neskumal
Javac to odmietne skompilovat.
Inak ECJ sa uz od nepamati pouziva v Tomcate na kompilaciu
servletov, ktore vzniknu z JSP stranok.
RN
On 25. 4. 2011 22:17, Libor Jelinek wrote:
A NetBeans používá taky vlastní kompilátor?
AFAIK pouziva z JDK.
Když dám v Eclipsech "Build", tak mi to přeloží jakým
kompilátorem? Když (jako ve zmíněném příkladu z Stackoverflow)
Eclipse zkompiluje, ale Sun/Oracle nikoli, tak jak se to pak
chová při běhu oproti Sun/Oracle JRE?
2011/4/25 Ladislav Thon <ladi...@gmail.com
<mailto:ladi...@gmail.com>>
Já kupříkladu narazil na rozdíly v kompilaci při volání
metody se signaturou používající Enum<?>, Eclipsí
kompilátor to zvládl na jedničku, javac měl problémy, viz
diskuze na stackoverflow.com <http://stackoverflow.com>:
http://stackoverflow.com/questions/2220763/java-specific-enums-and-generic-enum-parameters
Překladače mohou odvozovat parametrizované typy nad rámec
minimálních požadavků. Suní překladač (hádám, že "Oraclí"
začnu říkat nejdřív za pět let) se moc nesnaží, překladač z
Eclipsu toho zvládne odvodit víc. Neznamená to, že některý z
překladačů je vadný, jenom že o tom lidi moc neví.
LT
Ovšem pokud používáte Maven, musíte se stejně podřídit
standardnímu javac (tedy pokud neexistuje nějaký Maven
plugin, který by uměl použít pro kompilaci Eclipse -- a i
kdyby existoval, ani bych ho snad nechtěl použít).
Martin Schayna
On 04/25/2011 02:25 PM, Libor Jelinek wrote:
To jsou tedy vlastnosti s ohledem na IDE. Já stejně
většinou používám javac z Oraclího JDK přes Ant, tak
jsem jen chtěl vědět, zda náhodou není Eclipse compliter
třeba několikanásobně rychlější/lepší apod. :-)
Díky.
Libor
Dne 25. dubna 2011 11:17 Filip Jirsák <fi...@jirsak.org
<mailto:fi...@jirsak.org>> napsal(a):
Kompilátor eclipse například umožňuje přeložit i
třídu s chybou (chyba
v syntaxi v nějaké metodě apod.), jenom místo kódu
dané chybné metody
vloží vyhození nějaké runtime výjimky. K tomu asi
sunovský kompilátor
nedonutíte. Eclipse (IDE) pak ten přeložený kód
používá pro code
completion a spol., kde je užitečné, aby jedna
chybná metoda
nezabránila získávat informace o zbytku třídy a
ostatních třídách. Na
druhou stranu je potřeba si na to dávat pozor a
finální verzi přeložit
s plnou kontrolou chyb, aby se ten kód, kde se místo
nějaké metody
bude vyhazovat výjimka „na řádku 353 chybí středník“
nedostal na
produkci.
S pozdravem
Filip Jirsák
Dne 25. dubna 2011 7:43 Libor Jelinek
<ljeli...@virtage.com <mailto:ljeli...@virtage.com>>
napsal(a):
> A jaký má Eclipse důvod mít vlastní kompilátor? A
jaké má Eclipse kompilátor
> výhody? Oproti standardnímu javac od Oraclu?
>
> Libor
>
> Dne 19. dubna 2011 15:16 Tomáš Záluský
<zalu...@centrum.cz <mailto:zalu...@centrum.cz>>
napsal(a):
>>
>> >Eclipse kompilator se da pouzit i standalone, je
nejaky duvod proc ho tak
>> >nemuzes pouzit v build procesu?
>>
>> Zřejmě není, nejspíš na něj přejdeme. Budeme ale
muset vyřešit, že je to
>> pro Javu 1.5.
>> Omlouvám se za odmlku, nějak mi toto vlákno
vypadlo z pozornosti.
>> Díky Romane :-)
>>
>> Tomáš
>>
>>
>> ================================================
>> ...with Ultimate flying is so easy...
>> http://www.frisbee.cz http://www.peaceegg.net
>> ================================================
>>
>>
>>
>>
>>
>>
______________________________________________________________
>> > Od: "Roman Pichlík" <roman.pich...@gmail.com
<mailto:roman.pich...@gmail.com>>
>> > Komu: Java <konference@java.cz
<mailto:konference@java.cz>>
>> > Datum: 25.03.2011 11:10
>> > Předmět: Re: javac vs. Eclipse - čísla řádků v
.class u víceřádkových
>> > výrazů
>> >
>> >Eclipse kompilator se da pouzit i standalone, je
nejaky duvod proc ho tak
>> >nemuzes pouzit v build procesu?
>> >Dne 24.3.2011 12:11 "Tomáš Záluský"
<zalu...@centrum.cz <mailto:zalu...@centrum.cz>>
napsal(a):
>> >>
>> >> Dobrý den,
>> >>
>> >> narazil jsem na zajímavý problém s generováním
čísel řádků do class
>> >souboru.
>> >> Následující minimalizovaný program vyhodí
výjimku, ale stacktracy se
>> >> liší
>> >číslem řádky podle toho, čím byl program
zkompilován.
>> >>
>> >> public class SourceLines {
>> >>
>> >> public static class Foo {
>> >> public Foo withHoo(String hoo) {
>> >> return this;
>> >> }
>> >> }
>> >>
>> >> public static String n() {
>> >> return null;
>> >> }
>> >>
>> >> public static void main(String[] args) throws
Exception { // toto je
>> >> radek
>> >13
>> >> Foo f = new Foo()
>> >> .withHoo("x")
>> >> .withHoo(n().toUpperCase());
>> >> }
>> >>
>> >> }
>> >>
>> >> Pokud je program zkompilován Eclipsem, vypíše se:
>> >>
>> >> Exception in thread "main"
java.lang.NullPointerException
>> >> at SourceLines.main(SourceLines.java:16)
>> >>
>> >> Pokud je program zkompilován pomocí javac -g,
vypíše se:
>> >>
>> >> Exception in thread "main"
java.lang.NullPointerException
>> >> at SourceLines.main(SourceLines.java:14)
>> >>
>> >> Disassemblováním class souboru zjišťuji, že
Eclipse při zkompilování
>> >respektuje jednotlivé řádky, na kterých se
nachází zřetězené metody,
>> > zatímco
>> >javac to nahází na jeden řádek. Použil jsem
>> >http://java.decompiler.free.fr/, ale stejný
závěr je zřejmý i z volání
>> >javap -l -c.
>> >>
>> >> Nevíte, zda se dá javac v tomto nějak
ovlivnit? Všude jsem našel jen
>> >> popis
>> >k přepínači -g, ale nic nenasvědčuje, že by to
šlo ještě zjemnit.
>> >(Mimochodem JDK7 developer preview se chová
stejně.) Přijde mi to jako
>> > dost
>> >podstatná nevýhoda pro používání fluent API,
protože to vylučuje zapsání
>> >vnořeného výrazu do parametru volané metody.
>> >>
>> >> Nepovažuji vnořené výrazy za obecně dobrou
praktiku, ale někdy to nejde
>> >jinak, aniž by se snížila čitelnost. Výše
uvedený příklad je z praxe, kdy
>> >jsme takto hledali NullPointerException v řetězu
přes jednu stránku.
>> >Vyvíjeno pod Eclipsem, zkompilováno Mavenem (JDK
javac), nasazeno na
>> > Tomcat
>> >(JDK java).
>> >>
>> >> Či znáte jiné alternativy?
>> >>
>> >> Děkuji!
>> >>
>> >> Tomáš Záluský
>> >>
>> >>
>> >>
>> >> ================================================
>> >> ...with Ultimate flying is so easy...
>> >> http://www.frisbee.cz http://www.peaceegg.net
>> >> ================================================
>> >
>> >
>
>