Pokazywanie postów oznaczonych etykietą netbeans. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą netbeans. Pokaż wszystkie posty

wtorek, 25 stycznia 2011

This client is too old to work with working copy...

Trochę ponad rok temu podczas pracy z NetBeansem i SVNem, często witał mnie taki oto komunikat:

This client is too old to work with working copy ; please get a newer Subversion client

Ostatnio podobnym komunikatem uraczył mnie Eclipse...

Sprawę już omawiałem na blogu (http://wojtek-m.blogspot.com/2009/12/netbeans-i-subversion_20.html), ale wtedy nie poznałem przyczyny takiego zachowania. Teraz starczyło mi na to cierpliwości...

poniedziałek, 17 stycznia 2011

Metoda equals, LSP i Twoje IDE

Jeżeli chodzi o metodę equals(Object obj) w Javie, to wiadomo jedno - wcale nie jest taka trywialna do napisania, zwłaszcza że jednocześnie trzeba pamiętać o hashCode(). Na szczęście nowoczesne IDE takie jak Eclipse czy NetBeans potrafią same wygenerować poprawną parę tych metod. Ale czy aby na pewno?

Przypomnijmy sobie czego Sun (ups, Oracle) wymaga jako "kontraktu" metody equals (http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html#equals%28java.lang.Object%29):

1. Powinna to być relacja równoważności, czyli musi być:
a) zwrotna: x musi być równe x,
b) symetryczna: jeżeli x=y, to y=x,
c) przechodnia: jeżeli x=y i y=z, to x=z

2. Musi być spójna, tzn. ta sama para x i y musi zawsze dawać ten sam wynik.

3. I musi też zachodzić: x != null

Przesłaniając metodę equals trzeba pamiętać o wszystkich pięciu warunkach - na szczęście naszej pamięci przychodzą na pomoc nowoczesne IDE :)

poniedziałek, 20 września 2010

"Failed to load Main-Class ..." i NetBeans

Ostatnio pracując z malutkim projektem w NetBeans w pewnym momencie świeżo zbudowany plik JAR uraczył mnie komunikatem:

Failed to load Main-Class manifest attribute

Po krótkim guglaniu dowiedziałem się, że najczęściej taki komunikat dostają osoby, które do pisania programów wykorzystują tylko javac i cat i zapominają umieścić w pliku JAR plik manifest.mf. Proponowane rozwiązanie: użyj jakiegoś IDE, takiego jak Eclipse. Taaaa....

W JARze budowanym przez NetBeansa znajdował się wspomniany plik manifest.mf, ale nie mówił on która klasa w pliku jest główną. Przyczyną takiego błędu w tym IDE jest utworzenie projektu "class library", a nie "java application" - tak brzmi oficjalna wersja. Ale przecież 10 minut temu to jeszcze działało i było założone jako "java application".

Co ciekawe, pod samym NetBeansem cały projekt się uruchamiał, miał wybraną klasę główną itd., itp. Co poszło nie tak?

niedziela, 20 grudnia 2009

NetBeans i Subversion

Ostatnio pracując pod NetBeansem 6.7.1 miałem spory problem, aby to IDE współgrało z moim repozytorium SVN.
Nie, nie spory problem. Spory problem aż tak nie denerwuje człowieka. A to było wkurzające.
Wszystko rozbijało się o następujący komunikat: