>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 >> ================================================ > >
