28. srpna 2009

Java na Macu - ach jo

Kdykoliv přijedu na Java konferenci (spíše to tedy platí pro zahraničí), tak vidím samé přednášející s Mac notebooky. Člověk z toho nabude dojmu, že s Javou na Mac OS nejsou žádné problémy, že je to zaslíbený operační systém pro vývoj Java aplikací.

Po měsíci programování v Mac OS takový pocit bohužel nemám. Mám (měl jsem) dva základní problémy.

Dělám na velkém projektu (cca 30 tisíc tříd) a nejsem schopen tento projekt se standardní Javou na Macu (poslední dostupná verze je Java for Mac OS X 10.5 Update 4) vůbec zkompilovat kvůli nedostatku paměti. Mac OS je 64 bitový operační systém, Java na Macu také a mých 4GB paměti na to nestačí. Abych mohl zůstat na Macu, tak jsem musel začít používat SoyLatte - BSD Java port na Mac OS. S touto 32 bitovou verzí Javy už s kompilací není problém. Pak jsem ale musel ještě řešit problémy s tím, že na projektu používané JDK 6 má některé knihovny v trochu jiné verzi. Musel jsem do classpath podstrčit ty správné.
Po těchto peripetiích funguji bez problému, možná jsem i trochu získal tím, že náběh aplikace se mi zrychlil přibližně dvojnásobně. HotSwap a JavaRebel fungují bez problémů. Ale 100% náhrada to určitě není, protože SoyLatte některé části klasického JDK nemá, např. podporu Java Web Start.

Druhý problém je s Intellij IDEA. Sem tam (v průměru jednou denně) se mi IDEA z ničeho nic zavřela. To bych ještě přešel, jenže neočekávaným ukončením aplikace se zneplatní veškeré cache, takže pak musím čekát cca 20 minut než se mi celý projekt znovu natáhne a zkompiluje. Nejdříve jsem "nadával" na moje oblíbené IDE, a když už mi to fakt vadilo, tak jsem začal hledat příčinu - a našel. Problém je opět v Javě. Na uvedené stránce je nějaký workaround, který se zdá, že funguje. Nyní tedy čekám na novou verzi Javy pro Mac OS, kde by měla být chyba opravena.

Není to vždy jednoduché, když se člověk chce držet svého oblíbeného IDE a operačního systému ...

11 komentářů:

Martin řekl(a)...

Používání menšinového systému udržuje člověka ve stavu trvalé bdělosti a ostražitosti a zvyšuje jeho kvalifikaci, když je nucen hledat řešení chyb, které by jinak nikdy neviděl. :-)

pf řekl(a)...

Na Macu se Java defaultne pousti v 64bit a pak zere opravdu kvanta pameti - pomoci Java Utility ji lze prepnout do 32bit (tu original Applovskou, ne porty).

pf řekl(a)...

oprava: "Java Preferences", ne "utility"...

Anonymní řekl(a)...

Bez problemu je dostupna i 64b 1.6. Podivej do /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/
Nepouzivas jeste Tigra, ze ne?

Anonymní řekl(a)...

JJ drzat sa Mac OS chce niekedy kopu driny. Ja som nan presiel nedavno, z firemnych dovodov, a musim povedat, ze pre vyvoj mobilnych app. je mac os absolutne nepouzitelny. Samozrejme nie je to vina applu, ale vacsiny vyrobcov mobilov, kedze emulatory/sdk maju len pre win (specialne nokia a klony). Ale riesenie zasa poskytol virtualbox s win a fungujem dalej aj ked zbytocne zlozito.

Palko řekl(a)...

Tak jsem nedavno presel na mac take a musim rict ze java se mi subjektivne zda pomalejsi nez na win nebo linuxu a mam problemy s netbeans obcas se mi taky z niceho nic zaseknou nebo zavrou. jinak se mi ale mac moc libi ...

Anonymní řekl(a)...

@...ze pre vyvoj mobilnych app. je mac os absolutne nepouzitelny

No nevim, Android SDK pro Maca je, iPhone SDK taky, s tim se da docela dobre vystacit, ne ?

Anonymní řekl(a)...

@Anonymni: Tak trochu pracujeme na svetle na konci tunelu: http://blogs.sun.com/javamesdk/entry/prototype_of_java_me_sdk

Petr Jůza řekl(a)...

"Na Macu se Java defaultne pousti v 64bit a pak zere opravdu kvanta pameti - pomoci Java Utility ji lze prepnout do 32bit (tu original Applovskou, ne porty)."

Mohu si vybrat 32 bitovou, ale jen Javu 5, ne Javu 6. Nebo aspoň ji nemám v nabídce, záložka "General", combo box "Java applications".

Petr Jůza řekl(a)...

Tak už tu máme nový update Javy pro Mac OS.

Anonymní řekl(a)...

@ No nevim, Android SDK pro Maca je, iPhone SDK taky, s tim se da docela dobre vystacit, ne ?

Bohuzial nie, to co potrebujem je j2me a s tym moc nenarobim...skutocne jedina sanca je emulovany win na macu. Co sa tyka noveho sdk od sunu.... kiez by mal sun dost sil donutit vsetkych vyrobcov implementovat kvm podla specifikacie...inak je wtk emulator vhodny len tak na prvy start ....