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 <[email protected]> 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ý <[email protected]> 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" <[email protected]>
>> > Komu: Java <[email protected]>
>> > 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ý" <[email protected]> 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
>> >> ================================================
>> >
>> >
>
>

Odpovedet emailem