Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Каким компилятором вы пользуетесь


Автор: Domestic Cat 27.2.2005, 04:17
Голосовал за jikes - работает гораздо быстрее, чем javac. Правда код побольше чуть-чуть, и то не всегда. Сравнил байткоды скомпиленной проги - почти один в один, в основном отличие идет в пуле констант. И стек jikes делает побольше. Легко использовать Антом.
Недостаток - при установленной 1.5 не ругается, но 1.5 фичи не компилит smile
Какие есть мнения? Стоит он того или нет?

Автор: AntonSaburov 27.2.2005, 14:29
Я работал с jikes - мне понравилось, гораздо быстрее работает. Но так сложилось, что сейчас пользую javac

Автор: batigoal 27.2.2005, 17:01
Век живи, век учись. Я думал, все среды используют javac, внешний или встроенный.

Автор: LSD 27.2.2005, 20:03
В основном javac, реже ojc.

Я звиняюсь за оффтопик, но у меня возник вопрос: при компиляции некоторых классов с помощью javac, у меня пораждаются анонимные внутренние классы, которые не нигде объявляются и ничего не содержат (совершенно пустые). Их удаление никак не сказывается на работоспособности приложения. Откуда они берутся и зачем нужны?

Автор: Domestic Cat 27.2.2005, 23:54
Цитата(LSD @ 27.2.2005, 11:03)
Я звиняюсь за оффтопик, но у меня возник вопрос: при компиляции некоторых классов с помощью javac, у меня пораждаются анонимные внутренние классы, которые не нигде объявляются и ничего не содержат (совершенно пустые). Их удаление никак не сказывается на работоспособности приложения. Откуда они берутся и зачем нужны?


Не помню чтоб такое было smile Может код прицепишь?

Автор: LSD 28.2.2005, 00:34
Вот код:
Код
public class A
{
 public static final Object LOCK = new Object();
 public static boolean running = true;

 public static void main(String[] args)
 {
   Runtime.getRuntime().addShutdownHook(new ShutdownHook());
   while(running)
   {
     try
     {
       synchronized(LOCK)
       {
         LOCK.wait(5000);
       }
     }
     catch(InterruptedException ex)
     {}
   }
 }

 private static class ShutdownHook extends Thread
 {
   public void run()
   {
     running = false;
     synchronized(LOCK)
     {
       LOCK.notifyAll();
     }
   }
 }
}

При компиляции порождаются 3 класса: A.class, A$1.class, A$ShutdownHook.class. Копилятор из JDK 1.4.2_04.

Автор: Domestic Cat 28.2.2005, 01:46
И javac и jikes производят эти самые три класса, так что дело не в компилере. Декомпилим :


Код


public class A
{
    final class _cls1
    {

      _cls1()
     {
     }
   }
   private static class ShutdownHook extends Thread
   {

       public void run()
       {
           A.running = false;
           synchronized(A.LOCK)
           {
               A.LOCK.notifyAll();
           }
       }

       private ShutdownHook()
       {
       }

       ShutdownHook(_cls1 _pcls1)
       {
           this();
       }
   }


   public static final Object LOCK = new Object();
   public static boolean running = true;

   public static void main(String args[])
   {
       Runtime.getRuntime().addShutdownHook(new ShutdownHook(null));
       // bla bla bla
   }

   public A()
   {
   }

}


Внутренние классы в Java реализованы как обычные, им только передается ссылка на внешний класс - все это для совместимости с 1.0 как я понимаю.
Т.к. класс ShutDownHook приватный, то и конструктор у него должен быть приватным, иначе такой объект любой сможет создать! Но если у него будет приватный конструктор, то как объекты класса А смогут создать объект класса ShutDownHook ? Для этого сделан "спрятанный" конструктор
Код

ShutdownHook(_cls1 _pcls1)
       {
           this();
       }

- он вызывает дефаулт конструктор. Чтобы никто другой не смог воспользоваться этим конструктоором, туда передается этот самый объект типа _cls1.... По крайней мере, по идее. На самом деле передается нулл. Что вообще-то делает внутренний класс доступным для классов данного пакета. smile smile
Вот такие тараканы smile

Автор: Domestic Cat 28.2.2005, 04:56
А здесь, чтоп не оффтопить, отдельная темка
http://forum.vingrad.ru/index.php?act=ST&f=104&t=43862&st=0#entry338141

Автор: snorkee 17.3.2005, 16:57
я в Java всего месяц smile начинал со стандартного, сейчас на Eclipse пересел.

Автор: Tamerlann 19.3.2005, 17:29
Цитата

Какие есть мнения? Стоит он того или нет?


Ещё как стоит. Скорость, с которой он компилирует код это большое примущество.
Только на depricated методы он у меня не ругается. smile

Я использую именно его. НО, smile последнюю компиляцию всегда javac'ом smile

Автор: chipset 19.3.2005, 19:56
Eclipse

Автор: лукашов 13.5.2005, 23:27
А как компилировать их вообще?Я новичок в яве.Купил книгу вот прогу совета..вы извините если чёт нетак smile

Автор: Domestic Cat 13.5.2005, 23:33

 ! 
 
лукашов, создавай отдельную тему, не оффтопь.

Автор: Се ля ви 14.5.2005, 21:09
В Идее вроде javac используется - значит, его и юзаю. Не могу оригинальностью похвастать...

P.S. А кстати, где jikes и саму JVM от IBM скачать мона? Я пол-годика назад искал - не нашёл... smile Говорят, она лучше, чем у Sun...

Автор: Domestic Cat 14.5.2005, 21:10
Цитата
В Идее вроде javac используется


МОжно и jikes проставить в настройках.
Добавлено @ 21:11
http://sourceforge.net/project/showfiles.php?group_id=128803

Автор: batigoal 14.5.2005, 21:27
Я сейчас поставил jikes в Идею - удобно.

Автор: GooRoo 28.6.2005, 04:19
В Java я новичок. Пока юзаю javac. Поставил на закачку Eclipse - посмотрим, че это за пироги...

Автор: bars_uz 8.9.2005, 10:08
Ya polzueus SUNovskim JDK.. Ya starayus priderjivatsa blije k standartu

Автор: Metal_Heart 28.9.2005, 15:38
а у нас стандарт - писать по русски РУССКИМИ буквами, кстати!

Автор: batigoal 28.9.2005, 16:09
Metal_Heart
Функция транслита не отлажена smile Не во всех браузерах работает.

Автор: Metal_Heart 28.9.2005, 16:22
тогда, bars_uz - прошу простить меня великодушно!!!
не знал

Автор: Nobody 12.3.2006, 00:22
После моих развлечений с generics'ами, наш проект перестал собираться с помощью eclipse smile остался javac.

Автор: x82 18.4.2006, 23:06
Пока что мои проекты не настолько велики, чтобы скорость компиляции была критичным моментом. Я пользуюсь javac (Eclipse-3.1.2 + jdk-1.5.0)  smile 

Автор: Muerto 23.9.2006, 07:34
Народ а какое преемущество например эклипс над стандартном,и jikes что дает?

Автор: batigoal 23.9.2006, 10:34
jikes, говорят, побыстрее. Хотя, имхо, для компиляции это не критичный параметр.

Автор: integral 26.11.2006, 18:24
А разве Kiev, pizza и т. д. это не отдельный языки програмирования?

Автор: Maxim_Kizub 5.6.2007, 15:59
Я конечно пользуюсь своим родным kiev. Правда, он всё дальше уходит от совместимости с java. Написать к нему отдельный front-end для явы, что-ли ?.. Хотя если начнут пользоваться расширениями языка - то уже совместимым с javac не будет, а если нужна совместимость с  javac - то не будет расширений :(
Вот поэтому kiev постепенно эволюционирует в SymADE - чтоб написать программу на SymADE, и потом она сгенерирует исходники для java, кому сильно нужно будет.

Автор: Samotnik 12.7.2007, 00:08
javac   smile 

Автор: skif18 16.10.2007, 17:57
Eclipse, сел прям на него. Теперь не слезу. Нравиться он мне! А насчет скорости так че это важно если чуть медленее откомпилиться? smile 

Автор: EfritTitan 10.1.2008, 17:22
Eclipse SDK
Version: 3.1.1
 smile 

Автор: powerOn 10.1.2008, 18:09
Я вот смотрю на варианты ответов и никак понять не могу, что же такое компилятор "Eclipse"? Он как-то в составе Eclipse IDE идет или иначе? Где про него почитать можно?

Автор: COVD 10.1.2008, 18:11
Цитата

Пока что мои проекты не настолько велики, чтобы скорость компиляции была критичным моментом.


Смена jdk, IDE - это как раз игры для мелких проектов. Все баги устранены, архитектура отполирована до блеска. Чем бы еще заняться? Сменим jdk - вдруг повезет и всплывут новые баги?  smile 

Автор: Samotnik 10.1.2008, 23:52
Цитата(powerOn @  10.1.2008,  17:09 Найти цитируемый пост)
что же такое компилятор "Eclipse"? 

+1
 smile 
Может автор ,  Котяра     smile  smile      обьяснит....   

Автор: serger 11.1.2008, 06:32
Цитата(powerOn @ 10.1.2008,  18:09)
Я вот смотрю на варианты ответов и никак понять не могу, что же такое компилятор "Eclipse"? Он как-то в составе Eclipse IDE идет или иначе? Где про него почитать можно?

Ну вот, например тут сравнение компиляторов:
http://voituk.kiev.ua/2007/12/11/eclipse-jikes-javac-performance/

Но здаётся мне, что многие путают среду и компилятор.. smile

Автор: LSD 11.1.2008, 12:11
http://www.eclipse.org/jdt/core/
Цитата
JDT Core is the Java infrastructure of the Java IDE. It includes:

  • An incremental Java compiler. Implemented as an Eclipse builder, it is based on technology evolved from VisualAge for Java compiler. In particular, it allows to run and debug code which still contains unresolved errors.
  • ...


Автор: powerOn 11.1.2008, 16:43
Я так понимаю, что Eclipse Compiler, это просто некая обёртка (в виде API) которую использует Eclipse IDE что бы скомпилировать код с помощью  настоящего компилятора (допустим javac). Эта обёртка, например, умеет подменять методы на заглушки, если они не компилируются, что обеспечивает их: 
Цитата(LSD @  11.1.2008,  12:11 Найти цитируемый пост)
to run and debug code which still contains unresolved errors.


Автор: serger 11.1.2008, 16:48
Тогда он должен был бы компилить медленнее тогоже javac при использовании в связке, хотя это никакого смысла практически не имеет.

Автор: LSD 11.1.2008, 17:09
Там же написано:
Цитата
it is based on technology evolved from VisualAge for Java compiler

это собственная разработка, а не обертка. Насколько я знаю, он работает быстрей javac, но жрет больше памяти.

Автор: Samotnik 11.1.2008, 17:12
Цитата(LSD @  11.1.2008,  16:09 Найти цитируемый пост)
это собственная разработка, а не обертка.

А зачем?  чем  стандартные им не покатили,  кстати  по результатам опроса  33 чела  юзают  компилятор  Eclipse   интерестно,  .. я про него даже  никогда  ничего и не слышал ...

Автор: LSD 11.1.2008, 17:15
Цитата(Samotnik @  11.1.2008,  17:12 Найти цитируемый пост)
А зачем?

Быстрее, нет зависимости от JDK (Eclipse может работать используя только JRE).


Цитата(Samotnik @  11.1.2008,  17:12 Найти цитируемый пост)
кстати  по результатам опроса  33 чела  юзают  компилятор  Eclipse

Скорее всего это те, у кого стоит Eclipse (хотя идея тоже может его использовать).

Автор: Samotnik 11.1.2008, 17:28
Цитата(LSD @  11.1.2008,  16:15 Найти цитируемый пост)
Скорее всего это те, у кого стоит Eclipse 

Подожди, я чет  уже   вообще ничего не понимаю.  
т.е.  те у кого  стоит  Eclipse   сами того не зная,  компилируют  Eclipse - ом  ???


Автор: LSD 11.1.2008, 17:43
Цитата(Samotnik @  11.1.2008,  17:28 Найти цитируемый пост)
т.е.  те у кого  стоит  Eclipse   сами того не зная,  компилируют  Eclipse - ом  ???

По умолчанию - да.

Автор: Samotnik 11.1.2008, 17:48
Цитата(LSD @  11.1.2008,  17:43 Найти цитируемый пост)
По умолчанию - да. 

  smile   понятно!! 
А  случайно на  IDEA   нету  компилятора  IDEA  ??
Я просто IDEA   юзаю, может я  не   javac  компилирую,  а чем - нибудь  другим ?  

Автор: Platon 11.1.2008, 18:08
голосовал конечно же за sun jdk, то есть javac
А интересует меня такой вопрос: что за нативный компилятор? где его достать? не JIT ли это?

Автор: batigoal 11.1.2008, 20:47
Цитата(Samotnik @  11.1.2008,  18:48 Найти цитируемый пост)
А  случайно на  IDEA   нету  компилятора  IDEA  ??
Я просто IDEA   юзаю, может я  не   javac  компилирую,  а чем - нибудь  другим ?   

Нет, у них по умолчанию честный javac. Даже в дистрибутив не входит, надо отдельно ставить (насколько я помню).

Автор: Samotnik 11.1.2008, 21:46
Цитата(batigoal @  11.1.2008,  20:47 Найти цитируемый пост)
 надо отдельно ставить (насколько я помню).

Не, отдельно не ставил,  всегда ставлю  jdk  потом  IDEA  и все! 
даже  настривать ее не надо, сама  jdk  находит

Автор: batigoal 12.1.2008, 00:05
Цитата(Samotnik @  11.1.2008,  22:46 Найти цитируемый пост)
всегда ставлю  jdk  потом  IDEA

Ну вот это и есть - отдельно smile

Автор: alex_nevolin 1.2.2008, 14:38
Цитата(Samotnik @ 11.1.2008,  17:28)
Цитата(LSD @  11.1.2008,  16:15 Найти цитируемый пост)
Скорее всего это те, у кого стоит Eclipse 

Подожди, я чет  уже   вообще ничего не понимаю.  
т.е.  те у кого  стоит  Eclipse   сами того не зная,  компилируют  Eclipse - ом  ???

Многие у кого стоит Eclipse и Idea пользуются ANT для сборки. А он использует javac как я понимаю.

Автор: batigoal 1.2.2008, 16:47
Цитата(alex_nevolin @  1.2.2008,  15:38 Найти цитируемый пост)
А он использует javac как я понимаю. 

Это зависит от билд-скрипта.

Автор: chaos 1.7.2009, 06:37
я получается пользуюсь ojc smile ибо по умолчанию JDeveloper его использует smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)